是否可以在 EDMX 文件 C# DB 优先方法中更新多个过程和函数定义
Posted
技术标签:
【中文标题】是否可以在 EDMX 文件 C# DB 优先方法中更新多个过程和函数定义【英文标题】:Is that possible to update multiple procedure and function definition in EDMX file C# DB first approach 【发布时间】:2021-03-09 00:33:06 【问题描述】:我必须更新 edmx 中的许多 procs 和函数,我不想在模型浏览器中逐个更新,也不想重新创建 edmx,所以那里有任何可能的解决方案,我可以更新一次在 edmx 文件中创建多个 proc 或函数。
【问题讨论】:
有更新吗?请检查我是否为您解答。 【参考方案1】:您可以参考以下内容一次性更新多个proc或function。
首先,请右键单击 edmx 文件并选择update model from database
。
其次,如果要添加新的过程,可以点击添加,选择对应的存储过程。
如果要更新已存在的过程,可以点击刷新,选择存储过程。
第三,可以在dbcontext.cs文件中看到对应的方法。
public virtual ObjectResult
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);
【讨论】:
以上是关于是否可以在 EDMX 文件 C# DB 优先方法中更新多个过程和函数定义的主要内容,如果未能解决你的问题,请参考以下文章