实体框架设计器错误

时间:2013-02-24 11:07:11

标签: entity-framework entity-framework-4 entity-framework-5

我创建的项目是Visual Studio 2012,并通过“数据库优先”方法设置了实体框架。但是,在映射到数据库并生成我应该由框架自动生成的Designer.cs文件之后,我最终得到了大量错误,而这些错误我无法从中获取。我已将错误附加为txt文件,供您查看和发表专业评论。

请注意我是.net框架的新手,特别是EF领域。所以,如果你给我具体的答案,我会很感激,这样我的学习曲线就会有所帮助。

  

错误1'System.Data.Entity.DbContext.DbContext(string,System.Data.Entity.Infrastructure.DbCompiledModel)'的最佳重载方法匹配有一些无效的参数C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel.Designer.cs 45 32 TRSDataModel

     

错误2参数2:无法从'string'转换为'System.Data.Entity.Infrastructure.DbCompiledModel'C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel.Designer.cs 45 57 TRSDataModel

     

错误3'TRSModel.TRSEntities'不包含'ContextOptions'的定义,并且没有扩展方法'ContextOptions'接受类型为'TRSModel.TRSEntities'的第一个参数'(您是否缺少using指令或程序集)参考?)C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel.Designer.cs 47 18 TRSDataModel

     

错误4'System.Data.Entity.DbContext.DbContext(string,System.Data.Entity.Infrastructure.DbCompiledModel)'的最佳重载方法匹配包含一些无效参数C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel.Designer.cs 54 55 TRSDataModel

     

错误5参数2:无法从'string'转换为'System.Data.Entity.Infrastructure.DbCompiledModel'C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel.Designer.cs 54 78 TRSDataModel

     

错误6'TRSModel.TRSEntities'不包含'ContextOptions'的定义,也没有扩展方法'ContextOptions'接受类型为'TRSModel.TRSEntities'的第一个参数'(你是否缺少using指令或程序集)参考?)C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel.Designer.cs 56 18 TRSDataModel

     

错误7'System.Data.Entity.DbContext.DbContext(System.Data.Common.DbConnection,bool)'的最佳重载方法匹配有一些无效的参数C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel.Designer.cs 63 59 TRSDataModel

     

错误8参数2:无法从'string'转换为'bool'C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel.Designer.cs 63 76 TRSDataModel           错误9'TRSModel.TRSEntities'不包含'ContextOptions'的定义,并且没有扩展方法'ContextOptions'接受类型为'TRSModel.TRSEntities'的第一个参数'(您是否缺少using指令或程序集引用?) C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel.Designer.cs 65 18 TRSDataModel

// Lines 10-17
using System;
using System.ComponentModel;
using System.Data.EntityClient;
using System.Data.Objects;
using System.Data.Objects.DataClasses;
using System.Linq;
using System.Runtime.Serialization;
using System.Xml.Serialization;


// Lines 45-47
public TRSEntities() : base("name=TRSEntities", "TRSEntities")
{
    this.ContextOptions.LazyLoadingEnabled = true;
    OnContextCreated();
}

// Lines 54-56
public TRSEntities(string connectionString) : base(connectionString, "TRSEntities")
{
    this.ContextOptions.LazyLoadingEnabled = true;
    OnContextCreated();
}

// Lines 63-65
public TRSEntities(EntityConnection connection) : base(connection, "TRSEntities")
{
    this.ContextOptions.LazyLoadingEnabled = true;
    OnContextCreated();
}



// Error return by adding the public class TRSEntities to where Rene suggested 
Error   1   Missing partial modifier on declaration of type 'TRSModel.TRSEntities'; another partial declaration of this type exists C:\Users\user\Documents\TRS\TRSModel\TRSEntityModel.Designer.cs 33  18  TRSDataModel
Error   2   'TRSEntities': member names cannot be the usere as their enclosing type C:\Users\user\Documents\TRS\TRSModel\TRSEntityModel.Designer.cs 40  30  TRSDataModel

2 个答案:

答案 0 :(得分:1)

问题是我最初怀疑的。扩展的TRSEntities类在错误的命名空间中声明,因此无法识别导致TRSEntities类无法访问此基类的方法的基础ObjectContext类。这是因为EF名称从“TRSModel”更改为“TRSEntityModel”,显然没有在ER引擎内注册,因此,基于先前的命名空间自动生成此上下文文件。

我还不确定的一件事是如何将这个名称更改隐藏到EF中,以便它不会继续假设旧名称。

答案 1 :(得分:1)

使用NuGet到EF6 instaler,但也必须为VS2012或VS2013 EF6安装tools