Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL Server 2008:确保已将IncludeMetadata约定添加到DbModelBuilder约定中_C#_Asp.net Mvc 3_Entity Framework_Ef Code First - Fatal编程技术网

C# SQL Server 2008:确保已将IncludeMetadata约定添加到DbModelBuilder约定中

C# SQL Server 2008:确保已将IncludeMetadata约定添加到DbModelBuilder约定中,c#,asp.net-mvc-3,entity-framework,ef-code-first,C#,Asp.net Mvc 3,Entity Framework,Ef Code First,我得到的完全错误是: 无法检查模型兼容性,因为数据库不包含模型元数据。确保已将IncludeMetadataConvention添加到DbModelBuilder约定中 我曾在SQLServerCompact中尝试过这种方法,效果很好,但托管提供商只支持专用服务器的CE,我正在共享计划中,所以我使用SQLServer2008。数据库中我的连接字符串的格式如下: <connectionStrings> <add name="DBContext" co

我得到的完全错误是:

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

我曾在SQLServerCompact中尝试过这种方法,效果很好,但托管提供商只支持专用服务器的CE,我正在共享计划中,所以我使用SQLServer2008。数据库中我的连接字符串的格式如下:

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

我还有一个在应用程序启动时运行的数据库初始化器。如果需要更多的代码,请告诉我?我也没有创建edmx数据模型,我首先使用EF代码

我更改了初始值设定项代码始终删除数据库,但现在我得到错误,在数据库“master”中创建数据库权限被拒绝。我不知道为什么当我告诉它要使用的初始目录时会得到这个

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

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

我仍在使用上面的connectionstring

我更改了初始值设定项代码始终删除数据库,但现在我得到 出现错误,数据库“master”中的创建数据库权限被拒绝。我 不知道为什么当我告诉它最初的目录 使用

您决不能在共享主机中执行此操作,因为您几乎没有直接创建数据库的权限。只能在托管提供商的特殊界面中创建数据库。SQL server允许您删除自己拥有的数据库,但一旦删除,您的权限将消失,并且在没有创建数据库权限的情况下无法重新创建该数据库(在共享主机中,您从未拥有此权限)

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

太晚了。您的数据库已被删除。您必须通过托管提供商界面创建它,或联系您的托管提供商重新创建它

我还有一个在应用程序启动时运行的数据库初始化器


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

当我逐步完成此操作时,我意识到您所说的一切以及发生的一切。现在,即使创建了数据库,它也不会创建我的表。这是说dbo.Movies是一个无效的对象。我在最后一段解释的代码中有DbSet Movies{get;set;}。内置数据库初始值设定项只能创建数据库和表。它们不会用表填充现有数据库,因此您的数据库仍然为空。