【问题标题】:mvc3 code-first error on sqlexpresssqlexpress上的mvc3代码优先错误
【发布时间】:2011-04-27 03:18:57
【问题描述】:

当使用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。

【问题讨论】:

标签: asp.net-mvc-3


【解决方案1】:

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

【讨论】:

  • 我用的是mysql,这个连接器也有同样的问题,所以重命名数据库
【解决方案2】:

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

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

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

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

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

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

【讨论】:

    【解决方案3】:

    只需确保您的 Database.SetInitializer 函数位于 Application_Start 函数的顶部即可。

    成功了:)

    【讨论】:

      【解决方案4】:

      有时会发生这种情况,因为您在本地 SQL Server 实例上没有系统管理员角色。我找到了有用的文章,您可以在其中下载脚本命令并安装它。您将被要求提供 SQLEXPRESS 名称或实例名称,您只需输入“SQLEXPRESS”并输入即可。就是这样。它会将您添加到本地服务器实例的系统管理员角色。

      下载命令来自:http://archive.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=addselftosqlsysadmin&DownloadId=9198

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-28
        • 1970-01-01
        • 1970-01-01
        • 2012-05-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多