有没有办法将存储过程映射到Entity Framework,以便ExecuteFunction将MergeOption参数与NoTracking选项一起使用?
答案 0 :(得分:0)
您可以更新T4模板文件以添加“MergeOption.NoTracking”作为第二个参数。然后只需在.edmx上单击鼠标右键并选择“运行自定义工具”。
这是一个快速的解决方法,但我也想知道一个更长期的解决方案。如果这是唯一的解决方案,可以更新默认的T4模板,以便使用新的EntityModel自动执行此操作,并将它们存储起来。
{EnitityModel} .Context.tt 第290行:
"return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\", MergeOption.NoTracking{2});",
我在我的Repository构造函数中设置了以下内容,但MergeOption似乎更清晰
context = new Entities();
context.Configuration.AutoDetectChangesEnabled = false;
context.Configuration.ValidateOnSaveEnabled = false;