sqlexpress上的mvc3代码优先错误

eya*_*alb 1 asp.net-mvc-3

使用时 sqlexpress

<add name="SchoolContext"
     connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=CatomMvc;Integrated Security=True"
     providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

无法检查模型兼容性,因为数据库不包含模型元数据.确保已将IncludeMetadataConvention添加到DbModelBuilder约定中.

当我改为

<add name="SchoolContext" connectionString="Data Source=|DataDirectory|School.sdf" providerName="System.Data.SqlServerCe.4.0"/>
Run Code Online (Sandbox Code Playgroud)

这是工作,但我想使用sqlexpress或sql 2008给出相同的错误.

小智 7

数据库CatomMvc可能已存在于.\sqlexpress.尝试将数据库重命名为类似数据库Catomvc_backup或删除数据库,然后重试.


Pau*_*aul 5

或者你可以在你的内容中使用以下内容Application_Start():

Database.SetInitializer(new DropCreateDatabaseAlways<YourContext>());
Run Code Online (Sandbox Code Playgroud)

这将强制重新创建数据库,但通常在开发期间,您应该只使用:

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

允许根据模型的更改重新创建数据库.

但是,这些都不应该成为您的生产代码!