gpt4 book ai didi

c# - SQL 服务器 2008 : Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions

转载 作者:太空狗 更新时间:2023-10-29 23:25:35 28 4
gpt4 key购买 nike

我得到的完整错误是这样的:

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

我已经在 SQL Server Compact 上尝试过这个,它工作正常,但托管提供商只支持专用服务器的 CE,我在共享计划中,所以我使用的是 SQL Server 2008。我在数据库中的连接字符串是采用以下格式:

  <connectionStrings>
<add name="DBContext"
connectionString="Data Source=1.1.1.1;Initial Catalog=dbname;User Id=user;Password=pass;"
providerName="System.Data.SqlClient"/>
</connectionStrings>

我还有一个在 Application_Startup 中运行的 DatabaseInitializer。如果需要任何进一步的代码,请告诉我?我也没有创建 edmx 数据模型,我使用的是 EF Code First。

我更改了初始化代码总是删除数据库,但现在我收到错误消息,数据库“master”中的 CREATE DATABASE 权限被拒绝。我不知道为什么当我告诉它要使用的初始目录时会得到这个。

我现在将 null 传递给 SetInitializer,但现在我收到以下错误:

无法打开登录请求的数据库“dbname”。登录失败。用户“user”登录失败。

我仍在使用上面的连接字符串。

最佳答案

I changed the initializer code Drop the database always, but now I get the error, CREATE DATABASE permission denied in database 'master'. I don't know why I get this when I telling it the Initial Catalog to use.

您绝对不能在共享主机中这样做,因为您几乎没有直接创建数据库的权限。数据库只能在托管服务提供商的特殊界面中创建。 SQL Server 允许您删除您拥有的数据库,但是一旦您删除了它,您的权限就消失了,您不能在没有创建数据库的权限的情况下重新创建它(在共享主机中,您永远没有此权限)。

I am passing in null to the SetInitializer for now, but now I get the following error:

为时已晚。您的数据库已删除。您必须通过托管服务提供商界面创建它或联系您的托管服务提供商重新创建它。

I also have a DatabaseInitializer that runs in Application_Startup.

您不能在共享主机中使用任何内置的数据库初始化器,因为它们都希望创建数据库。您可以使用 custom initializer将表填充到现有数据库。

关于c# - SQL 服务器 2008 : Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8804960/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com