【C#】Entity Framework 增刪改查和事務操作

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   io   資料   ar   

1、增加對象  

            DbEntity db = new DbEntity();            //建立對象實體,注意,這裡需要對所有屬性進行賦值(除了自動成長主鍵外),如果不賦值,則會資料庫中會被設定為NULL(注意是否可空)            var user = new User                {                    Name = "bomo",                    Age = 21,                    Gender = "male"                };            db.User.Add(user);            db.SaveChanges();

2、刪除對象,刪除只需要對象的主鍵

            DbEntity db = new DbEntity();            //刪除只需要主鍵,這裡刪除主鍵為5的行            var user = new User {Id = 5};            //將實體附加到對象管理器中            db.User.Attach(user);            //方法一:            db.User.Remove(user);            //方法二:把當前實體的狀態改為刪除            //db.Entry(user).State = EntityState.Deleted;            db.SaveChanges();

3、修改對象

  方法一:

            DbEntity db = new DbEntity();            //修改需要對主鍵賦值,注意:這裡需要對所有欄位賦值,沒有賦值的欄位會用NULL更新到資料庫            var user = new User                {                    Id = 5,                    Name = "bomo",                    Age = 21,                    Gender = "male"                };            //將實體附加到對象管理器中            db.User.Attach(user);            //把當前實體的狀態改為Modified            db.Entry(user).State = EntityState.Modified;            db.SaveChanges();

  方法二:方法一中每次都需要對所有欄位進行修改,效率低,而且麻煩,下面介紹修改部分欄位

            DbEntity db = new DbEntity();            //修改需要對主鍵賦值,注意:這裡需要對所有欄位賦值,沒有賦值的欄位會用NULL更新到資料庫            var user = new User                {                    Id = 5,                    Name = "bomo",                    Age = 21                };            //將實體附加到對象管理器中            db.User.Attach(user);                        //擷取到user的狀態實體,可以修改其狀態            var setEntry = ((IObjectContextAdapter) db).ObjectContext.ObjectStateManager.GetObjectStateEntry(user);            //只修改實體的Name屬性和Age屬性            setEntry.SetModifiedProperty("Name");            setEntry.SetModifiedProperty("Age");            db.SaveChanges();

4、使用事務:使用事務很簡單,只要把需要的操作放在 TransactionScope 中,最後提交

            DbEntity db = new DbEntity();            using (var scope = new TransactionScope())            {                //執行多個操作                var user1 = new User                {                    Name = "bomo",                    Age = 21,                    Gender = "male"                };                db.User.Add(user1);                db.SaveChanges();                                var user2 = new User                {                    Name = "toroto",                    Age = 20,                    Gender = "female"                };                db.User.Add(user2);                db.SaveChanges();                //提交事務                scope.Complete();            }

5、查詢:查詢通過LinQ查詢

            DbEntity db = new DbEntity();            //選擇部分欄位            var user = db.User.Where(u => u.Name == "bomo").Select(u => new {Id = u.Id, Name = u.Name, Age = u.Age}).FirstOrDefault();            //只有調用了FirstOrDefault, First, Single, ToList, ToArray等函數才會執行對資料庫的查詢

  查詢基本都是LinQ的內容,內容有點多,下次在總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.