【发布时间】:2013-08-24 06:56:27
【问题描述】:
按照Pro Asp.Net MVC book,的运动商店教程
我的 Asp.Net MVC4 解决方案中有两个项目。一个 SportsStore.WebUI 和一个 SportsStore.Domain ,下面有我的 Product 类
我在模型类中为Name 添加了一个Required 属性
//Product.cs class
[Required]
public string Name { get; set; }
//..more properties, not important as I get the same error for all -
because I added Required to all
当我运行项目时,我收到The model backing the 'EFDbContext' context has changed since the database was created. 错误。
我已经检查了 stackoverflow 和 MSDN
解决方案 1:无效
MSDN 上建议的解决方案是运行 Update-Database -Force 。那不行,我明白了
“无法加载程序集“SportsStore.WebUI”。(如果您在 Visual Studio 中使用 Code First 迁移,如果您的解决方案的启动项目未引用包含您的迁移的项目,则可能会发生这种情况。您可以更改解决方案的启动项目或使用 -StartUpProjectName 参数。)"
这很奇怪,因为 A- 我没有先使用代码,而 B-域项目确实引用了 WebUI 项目
解决方案 2:无效
然后我在 PM 控制台中尝试了Enable-Migrations,我得到了
No context type was found in the assembly 'SportsStore.WebUI'.
然后我尝试将启动项目更改为 SportsStore.Domain(其中包含我的产品类) - 没有,同样的错误
【问题讨论】:
-
我不明白。您正在编辑 Product.cs 但您没有使用 Code-First?
-
不,我没有先使用代码,根本没有 edmx。只是Web.CONfig中的一个连接字符串,一个手动编写的DBContext类和上面的产品类:(
-
你所指的书中的代码是先行代码,但是通过先建表隐藏了它;当代码第一次创建表时,它们已经存在。但是,这与错误无关。
-
Oh.sorry 我以为代码首先提到了使用 Edmx。但是数据库仍然是在编写 product.cs 之前创建的
-
你正在反向工作。您想使用实体框架,但不想让他创建您的数据库或模型。您仅将其用于连接。
标签: c# asp.net-mvc visual-studio-2010 entity-framework