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的內容,內容有點多,下次在總結