sqlexpress上的mvc3代码优先错误

时间:2011-04-27 03:18:58

标签: asp.net-mvc-3

使用sqlexpress

<add name="SchoolContext"
     connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=CatomMvc;Integrated Security=True"
     providerName="System.Data.SqlClient" />

我收到错误

  

无法检查模型兼容性,因为数据库没有   包含模型元数据。确保IncludeMetadataConvention已经存在   添加到DbModelBuilder约定。

当我改为

<add name="SchoolContext" connectionString="Data Source=|DataDirectory|School.sdf" providerName="System.Data.SqlServerCe.4.0"/>

它的工作原理但是我想使用sqlexpress或sql 2008来提供相同的错误。

4 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:5)

或者,您可以在Application_Start()中使用以下内容:

Database.SetInitializer(new DropCreateDatabaseAlways<YourContext>());

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

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

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

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

答案 2 :(得分:0)

请确保您的Database.SetInitializer功能位于Application_Start功能的顶部。

诀窍是:)

答案 3 :(得分:0)

有时会发生这种情况,因为您在本地SQL Server实例上没有sysadmin角色。我找到了有用的文章,你可以下载脚本命令并安装它。您将要求输入SQLEXPRESS名称或实例名称,只需编写“SQLEXPRESS”并输入即可。而已。它会将您添加到本地服务器实例的sysadmin角色。

http://archive.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=addselftosqlsysadmin&DownloadId=9198

下载命令

如果它不适合你,请告诉我。