Entity Framework 普通操作(复习用)——感觉有点不对,需要撸代码验证
生活随笔
收集整理的這篇文章主要介紹了
Entity Framework 普通操作(复习用)——感觉有点不对,需要撸代码验证
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
方式一,使用Attach,并更新某個屬性的值(注意,不是所有的屬性都作修改)
using (var context = new EFContext()) { //方式一 var entity = context.Citys.Find(4); context.Citys.Attach(entity); entity.Name = "肇慶"; context.SaveChanges(); }?
將一個entity標記為System.Data.Entity.EntityState.Modified更新時會更新所有的列(而不僅是修改了列),實際該使用哪種方式視場合而定。model對象可以不是從數據庫獲取的
using (var context = new EFContext()) {//方式二var model = context.Citys.Find(5);model.Name = "潮州";context.Entry(model).State = System.Data.Entity.EntityState.Modified;context.SaveChanges(); }?
普通方式,全字段更新
using (var db = new DBModel()){var student = db.students.FirstOrDefault(s => s.name == "蘿莉");student.age = 13; //將蘿莉的年齡改為13歲 db.SaveChanges();}?
普通方式刪除
using (var db = new DBModel()){var student = db.students.FirstOrDefault(s => s.name == "蘿莉"); //查找蘿莉db.students.Remove(student); //刪除蘿莉 db.SaveChanges();}在ef中使用sql語句
using (var db = new DBModel()) //創建數據庫上下文 {//同步的方式執行SQL,并返回受影響的行數int result = db.Database.ExecuteSqlCommand(@"CREATE TABLE `test`.`test` (`id` INT NOT NULL,PRIMARY KEY(`id`)); ");//使用SqlParameter傳值可以避免SQL注入var p_name = new SqlParameter("@name", "蘿莉");var p_age = new SqlParameter("@age", 13);//如果使用的是MySql數據庫 需要SqlParameter把替換為MySqlParameter//var p_name = new MySqlParameter("@name", "蘿莉");//var p_age = new MySqlParameter("@age", 13);//更改學生年齡result = db.Database.ExecuteSqlCommand(@"UPDATE `test`.`student`SET `age` = @ageWHERE `name` = @name;", p_age, p_name);//異步的方式執行SQL,并返回受影響的行數Task<int> result2 = db.Database.ExecuteSqlCommandAsync("DROP TABLE `test`.`test`;"); }?
using (var db = new DBModel()) //創建數據庫上下文 {//查詢叫蘿莉的學生信息,并修改她的年齡student result1 = db.students.SqlQuery("SELECT * FROM test.student WHERE name = '蘿莉'").FirstOrDefault();result1.age = 13; //通過實體集合下.SqlQuery查詢到的數據,修改之后是可以保存到數據庫的student result2 = db.Database.SqlQuery<student>("SELECT * FROM test.student WHERE name = '旺財'").FirstOrDefault();result2.age = 21; //因為使用的是.Database.SqlQuery查詢到的,所以這里的修改不會保存到數據庫//如果希望.Database.SqlQuery下查出的數據在修改后也能保存到數據庫student result3 = db.Database.SqlQuery<student>("SELECT * FROM test.student WHERE name = '小明'").FirstOrDefault();result3.age = 36;db.Entry<student>(result3).State = System.Data.Entity.EntityState.Modified; //通知數據上下文,這條記錄也被修改了 db.SaveChanges(); }?
轉載于:https://www.cnblogs.com/KQNLL/p/9420904.html
總結
以上是生活随笔為你收集整理的Entity Framework 普通操作(复习用)——感觉有点不对,需要撸代码验证的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: numpy的生成网格矩阵 meshgri
- 下一篇: MVC的了解