0

当我发布我的网站时,我的服务器上不断收到此错误 - 即使没有更改数据库模型。

该网站在本地运行良好。

我正在使用数据库优先方法。

如果我删除服务器上站点中的所有文件,请在服务器上恢复我的本地数据库。从 VS 发布网站。有时它会在那之后运行良好。

如果我随后在数据库内容中进行一些更改,我将收到错误消息。

我不想在服务器上创建任何数据库/表 - 只需禁用需要执行的代码部分。在 MVC3 中,我们有这个 DropCreateDatabaseIfModelChanges 但我在当前站点中看不到任何内容。

我能做些什么?

我的连接字符串:

    <connectionStrings>
     <add name="GoBagHomeComEntities"     connectionString="metadata=res://*/Models.GoBagHomeModel.csdl|res://*/Models.GoBagHomeModel.ssdl|res://*/Models.GoBagHomeModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\sqlexpress;initial catalog=GoBagHomeCom;Persist Security Info=True;User ID=xx;Password=xxxx;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient"
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
     </connectionStrings>

还有我的 dbcontext

public partial class GoBagHomeComEntities : DbContext
{
    public GoBagHomeComEntities()
        : base("name=GoBagHomeComEntities")
    {
    }
4

3 回答 3

0

检查dbo.__MigrationHistory是否有记录意味着 EF 正在尝试迁移,因此截断表并重试。

如果同样的事情重复,那么您可能需要检查 EF 天气,它会作为设置迁移。

看看这个答案你需要在 web.config 文件中有连接字符串,我认为这是唯一错过的事情。

于 2015-10-20T07:41:38.953 回答
0

看来问题已经解决了:)

我确定 Owin 是坏人——我只是用它来创建身份验证 cookie。没有什么关于桌子的。

删除站点上所有与 Owin 相关的代码后,它正在运行。

于 2015-10-25T09:41:48.380 回答
0

如果您对数据库进行任何更改,您应该按照以下步骤操作:

  1. 更新 .edmx 文件。要更新它,请在打开时双击 .edmx,请右键单击此文件的空白处并选择“从数据库更新模型”。
  2. 保存并关闭文件。
  3. 构建项目。
  4. 从 bin 文件夹中复制 .dll 文件并将其传递到您托管应用程序的位置。
于 2017-06-09T09:51:09.880 回答