我必须在 edmx 中更新许多 procs 和函数,我不想在模型浏览器中逐个更新,也不想重新创建 edmx,所以那里有任何可能的解决方案,我可以更新多个 proc 或一口气在 edmx 文件中运行。
问问题
22 次
1 回答
0
您可以参考以下内容一次更新多个proc或function。
首先,请右键单击 edmx 文件并选择update model from database
.
其次,如果要添加新的过程,可以点击添加,选择对应的存储过程。
如果要更新已存在的过程,可以单击刷新并选择存储过程。
第三,可以在dbcontext.cs文件中看到对应的方法。
公共虚拟 ObjectResult<TestProcedure_Result> TestProcedure(Nullable age) { var ageParameter = age.HasValue ? new ObjectParameter("age", age) : new ObjectParameter("age", typeof(int));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<TestProcedure_Result>("TestProcedure", ageParameter);
}
public virtual ObjectResult<Pro1_Result> Pro1(Nullable<int> age)
{
var ageParameter = age.HasValue ?
new ObjectParameter("age", age) :
new ObjectParameter("age", typeof(int));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Pro1_Result>("Pro1", ageParameter);
}
public virtual ObjectResult<string> Proc2(Nullable<int> score)
{
var scoreParameter = score.HasValue ?
new ObjectParameter("score", score) :
new ObjectParameter("score", typeof(int));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<string>("Proc2", scoreParameter);
}
最后,您可以使用以下代码通过存储过程获取结果。
using (var db = new StudentContext())
{
var result = db.TestProcedure(20);
foreach (var stu in result)
{
Console.WriteLine(stu.Name);
}
}
于 2020-11-27T06:53:48.617 回答