实体框架代码优先:更新SetInitializer抛出异常

use*_*887 7 entity-framework ef-code-first

我一直在寻找这个奇怪的错误几个小时,但没有找到任何东西.我有一个非常简单的实体:

public class Company {
    public Guid Id { get; set; }
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是上下文:

public class MyDBContext : DbContext {

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

}
Run Code Online (Sandbox Code Playgroud)

第一次运行时,一切正常.但是,当我更改实体时(例如,我为Id添加了[Key]属性),我得到了预期的"模型已更改"或出现错误.所以,我在Global.asax application_start中输入:

Database.SetInitializer<MyDBContext>
(new DropCreateDatabaseIfModelChanges< MyDBContext >());
Run Code Online (Sandbox Code Playgroud)

这是我被卡住的地方.没有编译错误,它编译时没有错误/警告.但是,当我运行我的项目时,我收到以下错误:

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

例外细节: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)

phi*_*ady 2

对于拖网渔船未回答的问题,上面已经回答了。但从未被用户标记过。请参阅上面的评论。浏览量超过1K!那浪费了很多时间......所以我添加了这个。