Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架6生成错误的上下文代码_C#_Entity Framework - Fatal编程技术网

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

C# 实体框架6生成错误的上下文代码,c#,entity-framework,C#,Entity Framework,在我的工作场所,我们共享一个使用EntityFramework6.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 S

在我的工作场所,我们共享一个使用EntityFramework6.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);
}
我们都通过NuGet使用EF6.0

当我检查EntityFramework dll的属性时,我得到以下信息:


什么原因会导致这种情况?

因为您需要编辑
.tt
文件。
可能
MyModel.Context.tt
是为您生成MyModel.Context.cs的模板文件,每次您在
.edmx
文件中选择
updatemodel from database
时,它都会用来生成该模板文件。

。但是T4文件是根据我使用的EF版本从数据库生成的,不是吗?.cs是从.tt文件生成的,.tt只使用您在.edmx文件上更改的参数。尝试将您的代码复制并粘贴到此.tt文件的正确位置,并尝试从数据库更新模型,稍后检查它是否是在model.Context.cs上生成的。还取决于您使用的Visual Studio版本,请检查DbContext Generator上的此链接。项目似乎有混合的EF引用。它似乎使用EF 6,但也包含一个
System.Data.Entity
参考,并且*.tt文件也与EF5兼容,因此我删除了它们,并添加了一个新的代码生成项,如MS指南中所述。现在它被编译了。
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Objects;
using System.Data.Objects.DataClasses;
using System.Linq;