Entity Framework 普通操作(复习用)——感觉有点不对,需要撸代码验证
生活随笔
收集整理的這篇文章主要介紹了
Entity Framework 普通操作(复习用)——感觉有点不对,需要撸代码验证
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
方式一,使用Attach,并更新某個(gè)屬性的值(注意,不是所有的屬性都作修改)
using (var context = new EFContext()) { //方式一 var entity = context.Citys.Find(4); context.Citys.Attach(entity); entity.Name = "肇慶"; context.SaveChanges(); }?
將一個(gè)entity標(biāo)記為System.Data.Entity.EntityState.Modified更新時(shí)會(huì)更新所有的列(而不僅是修改了列),實(shí)際該使用哪種方式視場合而定。model對象可以不是從數(shù)據(jù)庫獲取的
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()) //創(chuàng)建數(shù)據(jù)庫上下文 {//同步的方式執(zhí)行SQL,并返回受影響的行數(shù)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數(shù)據(jù)庫 需要SqlParameter把替換為MySqlParameter//var p_name = new MySqlParameter("@name", "蘿莉");//var p_age = new MySqlParameter("@age", 13);//更改學(xué)生年齡result = db.Database.ExecuteSqlCommand(@"UPDATE `test`.`student`SET `age` = @ageWHERE `name` = @name;", p_age, p_name);//異步的方式執(zhí)行SQL,并返回受影響的行數(shù)Task<int> result2 = db.Database.ExecuteSqlCommandAsync("DROP TABLE `test`.`test`;"); }?
using (var db = new DBModel()) //創(chuàng)建數(shù)據(jù)庫上下文 {//查詢叫蘿莉的學(xué)生信息,并修改她的年齡student result1 = db.students.SqlQuery("SELECT * FROM test.student WHERE name = '蘿莉'").FirstOrDefault();result1.age = 13; //通過實(shí)體集合下.SqlQuery查詢到的數(shù)據(jù),修改之后是可以保存到數(shù)據(jù)庫的student result2 = db.Database.SqlQuery<student>("SELECT * FROM test.student WHERE name = '旺財(cái)'").FirstOrDefault();result2.age = 21; //因?yàn)槭褂玫氖?Database.SqlQuery查詢到的,所以這里的修改不會(huì)保存到數(shù)據(jù)庫//如果希望.Database.SqlQuery下查出的數(shù)據(jù)在修改后也能保存到數(shù)據(jù)庫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; //通知數(shù)據(jù)上下文,這條記錄也被修改了 db.SaveChanges(); }?
轉(zhuǎn)載于:https://www.cnblogs.com/KQNLL/p/9420904.html
總結(jié)
以上是生活随笔為你收集整理的Entity Framework 普通操作(复习用)——感觉有点不对,需要撸代码验证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: numpy的生成网格矩阵 meshgri
- 下一篇: [!] Attempt to read