实体框架为相同的架构创建2个数据库,并使用错误的一个

时间:2019-01-11 13:49:17

标签: c# .net sql-server entity-framework entity-framework-6

我正在使用带有Code First方法的Entity Framework 6.2.0。

当我尝试通过添加新迁移来更新数据库时,它将创建具有更新后更改的数据库。但是,如果我尝试在代码中使用上下文实例,它将创建另一个没有更改的数据库。

我找不到其他人遇到此问题。也许我做错了 这是我用来更新数据库的步骤。

假设我要创建一个初始迁移。

我首先将Add-Migration InitialUpdate-Database写入NPM控制台。 它创建此数据库:

This table

这对我没有任何意义,因为这是我的连接字符串

"Server=.\SQLEXPRESS; Database=MuLanuhcer; Trusted_Connection=True; MultipleActiveResultSets=true;"

但是它确实使用更新的版本。

现在,当我想使用此版本的数据库时,它可以“完美地”工作

但是,当我从代码中调用数据库上下文时,它将创建另一个数据库,这次使用正确的名称

The same exact table but this time with the correct name

当我尝试将行添加到其中一个模型时,会将其添加到第二个数据库中。

现在让我说我要更新其中一个模型

以我拥有的新闻更新模型为例

public class NewsUpdateModel
{
    public int RowID { get; set; }

    public int UpdateID { get; set; }

    public string ImageSource { get; set; }

    public string Headline { get; set; }

    public string Description { get; set; }

    public DateTime PublishingDate { get; set; }
}

我想向其中添加一个网址属性。因此,我添加了一个新的Url属性,然后再次添加了新的迁移并更新了数据库

但是这一次它仅更新第一个数据库“ MuLauncherServer.Relational.Context”,当我尝试从代码中使用该数据库时,它抛出一个异常,表明上下文的模型已更改。

似乎正在使用一个数据库进行更新,并使用一个数据库来进行CRUD个操作,(令人惊讶的)这不起作用

0 个答案:

没有答案