如何在EF中直接运行SQL命令

2025-05-21 14:28:05
推荐回答(1个)
回答1:

现在有了EF4.1,API的名字又有了些许改变。如果说DbContext将ObjectContext做了包装,那么DbContext.Database就是对应于数据库端信息的封装。执行SQL命令也自然从Database类型开始。对应于ExecuteStoreCommand和ExecuteStoreQuery的是Database.ExecuteSqlCommand和Database.SqlQuery

using (var ctx = new MyDbContext())
{
ctx.Database.ExecuteSqlCommand("UPDATE Person SET Name = 'Michael' WHERE PersonID = 1");
}

using (var ctx = new MyDbContext())
{
var peopleViews = ctx.SqlQuery("SELECT PersonID, Name FROM Person").ToList();
}

public class PersonView
{
public int PersonID { get; set; }
public string Name { get; set; }
}