我一直在寻找这个奇怪的错误几个小时,但没有找到任何东西.我有一个非常简单的实体:
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)
这只是一个我无法弄清楚如何使其工作的例子.
在我的MVC3 Controller文件夹中,如果我添加一个名为"Admin"的新文件夹并添加带有"Index"操作的控制器"News",则在尝试打开该URL时会出现服务器错误(404):
即使你在它后面输入"/ Index",它也行不通.你怎么能形成一个层次结构,导致类似的URL?为了清楚起见,我想创建URL,如:
HTTP:// URL /文件夹1 /文件夹2 /控制器/行动
谢谢