2

Я создал проект Visual Studio 2012 и настроил структуру Entity с помощью подхода «Database First». Однако после сопоставления с базой данных и создания моего файла Designer.cs, который, как предполагается, автоматически генерируется каркасом, я получаю кучу ошибок, которые я не могу получить, откуда они пришли. Я прикрепил ошибку как файл txt для вашего обзора и профессионального комментария.Ошибки конструктора структуры Entity Framework

Обратите внимание, что я новичок в инфраструктуре .net, особенно в области EF. Поэтому я был бы признателен, если бы вы дали мне конкретный ответ, чтобы он помог по остальной части моей кривой обучения.

Ошибка 1 Лучший перегруженный метод подходит для 'System.Data.Entity.DbContext.DbContext (строка, System.Data.Entity.Infrastructure.DbCompiledModel)' имеет некоторые недопустимые аргументы C: \ Users \ Пользователь \ 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: не удается преобразовать из 'строка' до 'System.Data.Entity.Infrastructure.DbCompiledModel' C: \ Users \ пользователь \ Documents \ ТРС \ 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» (вам не хватает директивы использования или ссылки на сборку?) C: \ Users \ пользователь \ Documents \ ТРС \ 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 
+0

пожалуйста, добавьте код из вокруг линии 45-47 54-56 63-65 от TSREnitityModel.Designer.cs – rene

+0

Запрашиваемый кусок кода публикуется в области вопросов. Пожалуйста, смотрите. – Sam

+0

добавьте строку 'public class TRSEntities' до первого {также, пожалуйста, – rene

ответ

1

проблема заключалась в том, как я изначально подозревал. Расширенный класс TRSEntities был объявлен в неправильном пространстве имен и, следовательно, не смог идентифицировать базовый класс ObjectContext, приводящий к тому, что класс TRSEntities не сможет получить доступ к методам этого базового класса. Это произошло из-за изменения имени EF от «TRSModel» до «TRSEntityModel», который, по-видимому, не регистрировался внутри механизма ER, следовательно, автоматически генерировал этот файл контекста на основе предыдущего пространства имен.

Одна вещь, которую я до сих пор не уверен, заключается в том, как сделать это изменение имени погруженным в EF, чтобы оно не продолжало принимать старое имя.

1

Использование NuGet для Ef6 instaler но также необходимо установить tools для VS2012 или VS2013 EF6

+0

У меня не было объекта EF 6.x DbContext Generator, доступного до тех пор, пока я не установил инструменты для VS2012. Получите их от: http://www.microsoft.com/en-us/download/details.aspx?id=40762 – davaus

Смежные вопросы