实体框架6生成错误的上下文代码

时间:2015-04-14 09:56:05

标签: c# entity-framework

在我的工作场所,我们共享一个使用Entity Framework 6.0进行数据库操作的项目。

在存储库中,我看到MyModel.Context.cs文件中的修改(添加了一个函数)。

从这个使用块:

using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Objects;
using System.Data.Objects.DataClasses;
using System.Linq;

改为:

using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.Core.Objects;
using System.Data.Objects.DataClasses;
using System.Linq;

[EdmFunction("MyEntities", "DbFunction1")]
public virtual IQueryable<DbFunction1_Result> DbFunction1(Nullable<System.Guid> id)
{
   //some code    
   return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<DbFunction1_Result>("[MyEntities].[DbFunction1](@id)", parameter);
}

我更新了我的工作副本并进行了编译。

但是,每当我使用Update model from database时,我的代码都会更改为:

using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Objects;
using System.Data.Objects.DataClasses;
using System.Linq;

我们都通过NuGet使用EF 6.0。

当我检查EntityFramework dll的属性时,我得到了这个:

enter image description here

是什么导致这种情况?

1 个答案:

答案 0 :(得分:2)

因为您需要编辑.tt文件。 可能MyModel.Context.tt是为您生成MyModel.Context.cs的模板文件,每当您在Update model from database文件中选择.edmx时,它都会使用T4生成它。< / p>