天天看點

EntityFramework實作增删改查

17-2-23

EF資料庫表一定要有主鍵

【EF實作修改和删除】

ctx.Entry<UserInfoTable>(user).State = System.Data.Entity.EntityState.Modified;

#region 增加操作
        /*
        //1.執行個體化一個上下文對象
        var ctx = new UserInfoEntities();

        //2.執行個體化一個模型對象并且給對象指派
        UserInfoTable user = new UserInfoTable();
        user.UserName = "Futao00";
        user.Pwd = "1223";
        user.Sex = "男";
        user.Tel = "18797811992";

        //3.對資料庫進行一個添加操作(告訴EF實體操作的類型curd)
        ctx.UserInfoTable.Add(user);
        //ctx.UserInfoTable.Remove();
        //4.同步到資料庫,這個時候資料庫才會進行curd
        ctx.SaveChanges();
        */
      #endregion
           

//修改的時候要指定主鍵的值,隻能根據主鍵進行crud,是以EF的資料表必須設定自己的主鍵

#region 修改删除操作

//1.執行個體化上下文對象

UserInfoEntities dbContext = new UserInfoEntities();

//2.執行個體化實體對象,同時指定對象的主鍵和對象修改之後的值

UserInfoTable userA = new UserInfoTable();

userA.UserName = "Futao"; //指定主鍵

//userA.Tel = "xxx";

//userA.Pwd = "xxx";

//userA.Sex = "xxx";

userA.Sex = "000000";
        //3.告訴EF對該對象進行的操作
        //dbContext.Entry<UserInfoTable>(userA).State = System.Data.Entity.EntityState.Modified;
        //單獨修改某一個屬性的時候要先Attach上
        dbContext.UserInfoTable.Attach(userA);
        //dbContext.Entry<UserInfoTable>(userA).Property<string>(u => u.Sex).IsModified = true;
        dbContext.Entry(userA).Property("Sex").IsModified = true;
        //dbContext.Entry<UserInfoTable>(userA).State = System.Data.Entity.EntityState.Deleted;
        //4.儲存到資料庫
        dbContext.SaveChanges();
      #endregion


      #region 查詢操作
        UserInfoEntities dbContext = new UserInfoEntities();
        //周遊所有資料
        foreach (var v in dbContext.UserInfoTable)
        {
            Console.WriteLine(v.UserName + "\t" + v.Pwd + "\t" + v.Sex + "\t" + v.Tel);
        }
        //按條件查詢Linq
        var tempSQL = from u in dbContext.UserInfoTable
                      where u.Pwd == "123"
                      select u.UserName + "\t" + u.Pwd + "\t" + u.Sex + "\t" + u.Tel;

        //再列印輸出查詢結果
        foreach (var x in tempSQL)
        {
            Console.WriteLine(x);
        }
      #endregion
           

補充:實體Entity是什麼,實體與模型Model之間的關系

http://www.cnblogs.com/hellenism/p/3812947.html?utm_source=tuicool&utm_medium=referral

lambda表達式

Linq

【課後作業】

(以組為機關打包發送,郵件)

時間:下周一,17-2-27之前

目标:實作課程資訊的增删改查

備注:課程資訊:課程編号(主鍵),課程名稱,授課老師(教師編号),備注

要求:

1.建立資料庫,表

2.建立控制台程式,EF實體模型

3.實作表的增删改查,其中增,删,改提供SQL語句(資料庫Profilter監測到的SQL語句)