我在asp.net核心应用程序中使用EF7(实体框架核心)。您能否指出我执行存储过程的正确方法?旧法ObjectParameters,并((IObjectContextAdapter)this).ObjectContext.ExecuteFunction不能正常工作。
3 回答
![?](http://img1.sycdn.imooc.com/533e4bec0001ae5302000200-100-100.jpg)
RISEBY
TA贡献1856条经验 获得超5个赞
现在解决了EF7中对存储过程的支持,它还支持多个结果集的映射。
您可以这样称呼它- var userType = dbContext.Set().FromSql("dbo.SomeSproc @Id = {0}, @Name = {1}", 45, "Ada");
![?](http://img1.sycdn.imooc.com/545847d40001cbef02200220-100-100.jpg)
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
要执行存储过程,请使用FromSql方法执行RAW SQL查询
例如
var products= context.Products .FromSql("EXECUTE dbo.GetProducts") .ToList();
与参数一起使用
var productCategory= "Electronics";var product = context.Products .FromSql("EXECUTE dbo.GetProductByCategory {0}", productCategory) .ToList();
要么
var productCategory= new SqlParameter("productCategory", "Electronics");var product = context.Product .FromSql("EXECUTE dbo.GetProductByName @productCategory", productCategory) .ToList();
执行RAW SQL查询或存储过程存在某些限制。您不能将其用于INSERT / UPDATE / DELETE。如果要执行INSERT,UPDATE,DELETE查询,请使用ExecuteSqlCommand
var categoryName = "Electronics";dataContext.Database .ExecuteSqlCommand("dbo.InsertCategory @p0", categoryName);
- 3 回答
- 0 关注
- 886 浏览
添加回答
举报
0/150
提交
取消