使用MergeOption将存储过程映射到实体框架

时间:2012-12-13 20:51:51

标签: entity-framework-4

有没有办法将存储过程映射到Entity Framework,以便ExecuteFunction将MergeOption参数与NoTracking选项一起使用?

1 个答案:

答案 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;