繁体   English   中英

首先从Entity Framework 6.1.3调用存储过程

[英]Call stored procedure from Entity Framework 6.1.3 code-first

请考虑以下代码-我创建了一个存储过程:

CREATE PROCEDURE InsertRegion
    @RegionID int,
    @RegionDesc nvarchar(50)
AS
BEGIN
    INSERT INTO [dbo].[Region]
    VALUES (@RegionID, @RegionDesc)
END

我想从我的存储库类中调用此过程:

 using (Model1 ent = new Models.Model1())
 {
     List<SqlParameter> parameters = new List<SqlParameter>();
     parameters.Add(new SqlParameter("RegionID", 100));
     parameters.Add(new SqlParameter("RegionDesc", "Nima"));

     ent.Database.SqlQuery<Region>("exec InsertRegion", parameters.ToArray());
  }

但什么也没发生。 我将最后一行更改为:

ent.Database.SqlQuery<Region>("exec InsertRegion @RegionID, @RegionDesc ", parameters.ToArray());

但同样,什么也没有发生。

问题出在哪儿?

谢谢

不带exec使用:

using (Model1 ent = new Models.Model1())
{
    var regionID= new SqlParameter("@RegionID", 100);
    var regionDesc= new SqlParameter("@RegionDesc", "Nima");

    ent.Database.SqlQuery<Region>("InsertRegion @RegionID ,@RegionDesc", regionID ,regionDesc);
}

但在您的sp中不返回任何记录,因此您也可以使用此命令:

using (Model1 ent = new Models.Model1())
{
    var regionID= new SqlParameter("@RegionID", 100);
    var regionDesc= new SqlParameter("@RegionDesc", "Nima");

    ent.Database.ExecuteSqlCommand("InsertRegion @RegionID ,@RegionDesc", regionID ,regionDesc);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM