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

我在asp.net核心应用程序中使用EF7(实体框架核心)。您能否指出我执行存储过程的正确方法?旧法ObjectParameters,并((IObjectContextAdapter)this).ObjectContext.ExecuteFunction不能正常工作。

呼如林
浏览 887回答 3
3回答

RISEBY

现在解决了EF7中对存储过程的支持,它还支持多个结果集的映射。在此处查看修复详细信息您可以这样称呼它- var userType = dbContext.Set().FromSql("dbo.SomeSproc @Id = {0}, @Name = {1}", 45, "Ada");

小怪兽爱吃肉

要执行存储过程,请使用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查询,请使用ExecuteSqlCommandvar categoryName = "Electronics";dataContext.Database           .ExecuteSqlCommand("dbo.InsertCategory @p0", categoryName);
打开App,查看更多内容
随时随地看视频慕课网APP