【EF學習筆記03】----------使用原生Sql語句


在EF中使用原生SQL,首先要創建上下文對象

using (var db = new Entities())
{
    //數據操作
}

新增

string sql = "insert into UserInfo values('zhangsan','123456')";
    db.Database.ExecuteSqlCommand(sql);

參數化新增

    sql = "insert into UserInfo values(@UserName,@UserPass)";
    var param = new SqlParameter[] 
    {
        new SqlParameter("@UserName","lisi"),
        new SqlParameter("@UserPass","123456")
    };
    db.Database.ExecuteSqlCommand(sql, param);

刪除

    sql = "delete from UserInfo where UserName='zhangsan'";
    db.Database.ExecuteSqlCommand(sql);

參數化刪除

    sql = "delete from UserInfo where UserName=@UserName";
    db.Database.ExecuteSqlCommand(sql, new SqlParameter("@UserName", "lisi"));

修改

    sql = "update UserInfo set UserName='wangwu'";
    db.Database.ExecuteSqlCommand(sql);

查詢多條記錄

    sql = "select * from UserInfo";
    var users = db.Database.SqlQuery<UserInfo>(sql);
    foreach (var user in users)
    {
        ObjectDumper.Write(user);//打印對象
    }

總結:操作方式與ADO.NET類似,EF框架自動為我們封裝了數據庫鏈接和查詢對象。

 

完整案例:

//1.創建上下文對象
            using (var db = new Entities())
            {
                //
                string sql = "insert into UserInfo values('zhangsan','123456')";
                db.Database.ExecuteSqlCommand(sql);

                //參數化新增
                sql = "insert into UserInfo values(@UserName,@UserPass)";
                var param = new SqlParameter[] 
                {
                    new SqlParameter("@UserName","lisi"),
                    new SqlParameter("@UserPass","123456")
                };
                db.Database.ExecuteSqlCommand(sql, param);

                //
                sql = "delete from UserInfo where UserName='zhangsan'";
                db.Database.ExecuteSqlCommand(sql);

                //參數化刪除
                sql = "delete from UserInfo where UserName=@UserName";
                db.Database.ExecuteSqlCommand(sql, new SqlParameter("@UserName", "lisi"));

                //
                sql = "update UserInfo set UserName='wangwu'";
                db.Database.ExecuteSqlCommand(sql);

                //原生sql查詢
                sql = "select * from UserInfo";
                var users = db.Database.SqlQuery<UserInfo>(sql);
                foreach (var user in users)
                {
                    ObjectDumper.Write(user);//打印對象
                }
            }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM