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