一: 執行sql語句,返回受影響的行數
在mysql里面,如果沒有影響,那么返回行數為 -1 ,sqlserver 里面 還沒有測試過
using (var ctx = new MyDbContext()) { ctx.Database.ExecuteSqlCommand("UPDATE Person SET Name = 'Michael' WHERE PersonID = 1"); }
二 : Database.SqlQuery<T> EF5執行sql查詢語句 Database.SqlQuery 帶返回值
這個准確的說是 IEnumerable<T> SqlQuery<T>(string sql, params object[] parameters) ,注意返回值是 IEnumerable
這個是執行sql語句,返回你想要的類型的列表
dbMain.Database.SqlQuery<int>("select max(UserId) from tb_user_account").First();
或者假如你自己有個類別
public class PersonView { public int PersonID { get; set; } public string Name { get; set; } }
那么就可以直接返回這個 PersonView類
using (var ctx = new MyDbContext()) { var peopleViews = ctx.SqlQuery<PersonView>("SELECT PersonID, Name FROM Person").ToList(); }
直接返回你想要的數據. 例如這里是 List<PersonView> 列表