[英]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.