请考虑此代码 - 我创建了一个存储过程:
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());
但同样没有任何反应。
问题出在哪里?
由于
答案 0 :(得分:1)
不使用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);
}