Подтвердить что ты не робот

X Уже содержит определение Y с EntityFramework? (простая база данных)

У меня есть 3 таблицы в моей базе данных MS SQL, и я добавил EntityFramework (последний) в мой проект, где я импортировал эти 3 таблицы. Первая проблема заключалась в том, что никаких объектов не было создано, поэтому я изменил "Стратегия генерации кода" от None до Default.

После сборки я получаю

X Уже содержит определение для Y

для всех свойств сущностей.

При приближении к нему генерируется частичный ex Users.cs и один частичный User in в MainModel.Designer.cs?

Почему он генерирует User.cs? У меня аналогичная настройка в другом проекте, и EF настроен с одинаковыми настройками, нет User.cs?

Edit1. Я вижу одну вещь, которая отличается, и thats Использовать сильные пространственные типы, которые установлены в False в провальном проекте, однако невозможно установить его в true (grayed)?

4b9b3361

Ответ 1

Вы должны использовать стратегию генерации кода None для вашего .edmx файла. Или удалите шаблоны MainModel.tt и MainModel.Context.tt, которые генерируют объекты модели и контекст.

Если вы используете стратегию генерации кода Default, то сущности и контекст будут сгенерированы в файл MainModel.Designer.cs. Это были бы стандартные объекты, унаследованные от EntityObject, контекст будет унаследован от ObjectContext. С Entity Framework 5 у нас есть генерация объектов POCO. И целая генерация выполняется в шаблонах T4, которые генерируют контекст, унаследованный от объектов DbContext и POCO без базового типа (ну, только объект).

Если в дизайнере edmx есть как шаблоны, так и активированные генерации кода, тогда будут созданы два набора объектов. Вот почему у вас конфликты имен.

Ответ 2

  • Щелкните правой кнопкой мыши модель Entity.
  • Перейдите к свойствам и удалите имя по умолчанию в "Пользовательский инструмент".
  • Назначьте edmx в model.tt и model.context
  • Создайте и выполните его, вы будете свободны от ошибок.