为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Entity Framework Core中运行存储过程?

如何在Entity Framework Core中运行存储过程?

呼如林 2019-09-26 09:48:39
我在asp.net核心应用程序中使用EF7(实体框架核心)。您能否指出我执行存储过程的正确方法?旧法ObjectParameters,并((IObjectContextAdapter)this).ObjectContext.ExecuteFunction不能正常工作。
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

现在解决了EF7中对存储过程的支持,它还支持多个结果集的映射。

在此处查看修复详细信息

您可以这样称呼它- var userType = dbContext.Set().FromSql("dbo.SomeSproc @Id = {0}, @Name = {1}", 45, "Ada");


查看完整回答
反对 回复 2019-09-26
?
小怪兽爱吃肉

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);


查看完整回答
反对 回复 2019-09-26
  • 3 回答
  • 0 关注
  • 886 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信