Сначала код Entity Framework: обновление SetInitializer выдает исключение - PullRequest
7 голосов
/ 11 мая 2011

Я искал эту странную ошибку в течение нескольких часов, но ничего не нашел.У меня очень простая сущность:

public class Company {
    public Guid Id { get; set; }
    public string Name { get; set; }
}

А вот контекст:

public class MyDBContext : DbContext {

    public DbSet<Company> Companies { get; set; }

}

При первом запуске все работает просто отлично.Но когда я меняю сущность (например, я ставлю атрибут [Key] для Id), я получаю ожидаемое «модель изменилась» или что-то в этом роде.Итак, я ввожу это в Global.asax application_start:

Database.SetInitializer<MyDBContext>
(new DropCreateDatabaseIfModelChanges< MyDBContext >());

Вот где я застреваю.Нет ошибки компиляции, она компилируется без ошибок / предупреждений.Но когда я запускаю свой проект, я получаю следующую ошибку:

Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.TypeLoadException: GenericArguments[0], 'MyDB.Data.MyDBContext', on 'System.Data.Entity.IDatabaseInitializer1[TContext]' violates the constraint of type parameter 'TContext'.

Пожалуйста, кто-нибудь имеет подсказку?Я использую Entity Framework 4.1 (CTP5)

Ответы [ 2 ]

2 голосов
/ 24 мая 2013

Для оставшихся без ответа траулеров вопросов, на этот вопрос был дан ответ выше. Но никогда не отмечен пользователями. Смотрите комментарии выше. Более 1К просмотров! Это тратить много времени ... Так что я добавил это.

0 голосов
/ 06 июля 2014

Если вы работаете с Web.config (вместо Global.asax) и несколькими файлами проектов (например, я обычно создаю в ASP.NET MVC [ Projectname ]. WebUI, который содержит файлы MVC и [ Projectname ]. Domain, который является библиотекой классов, содержащей логику данных), затем вам необходимо добавить следующий код в ALL Web.config / App.config в вашем решении:

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>

Это сработало для меня без необходимости слияния моего проекта Домена с проектом WebUI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...