我正在使用带有Code First方法的Entity Framework 6.2.0。
当我尝试通过添加新迁移来更新数据库时,它将创建具有更新后更改的数据库。但是,如果我尝试在代码中使用上下文实例,它将创建另一个没有更改的数据库。
我找不到其他人遇到此问题。也许我做错了 这是我用来更新数据库的步骤。
假设我要创建一个初始迁移。
我首先将Add-Migration Initial
和Update-Database
写入NPM
控制台。
它创建此数据库:
这对我没有任何意义,因为这是我的连接字符串
"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
个操作,(令人惊讶的)这不起作用