4

我正在使用 Entity Framework 5 构建一个 ASP.Net MVC4 Web 应用程序。我必须使用现有的 sql server 数据库,但也想使用 Code First,所以我按照本教程http://msdn.microsoft.com/en-us /data/jj200620.aspx

我的应用程序使用 Entity Framework 的自动迁移。

我在整个开发阶段使用的 sql server 版本是 2008,但是,在最后一刻,我被告知数据库需要在 sql server 2005 上工作。我得到了我在 sql server 2008 设置中使用的数据库(确切地说sql server 2005 上的表、属性名称、关系等)。但是,当我的 web config 等设置指向 sql server 2005 数据库时,当我对我的一个模型类进行更改时,自动迁移不起作用.

我收到以下错误

数据库中已经有一个名为“tblcourseprofessionTarget”的对象。

有人可以帮忙吗?

谢谢。

抱歉,如果我没有添加足够的信息。

4

3 回答 3

8

乡亲

这篇文章http://christesene.com/entity-framework-4-3-code-first-with-automatic-migrations/帮助了我上述问题的答案

我不得不删除我以前的初始迁移类,然后重新创建它。

于 2013-04-10T10:38:26.270 回答
4

我有一个类似的问题。

对我来说,原因是数据库中已经运行了相同的迁移,但使用了不同的 MigrationID。我有201504302005411_InitialCreate,但我的迁移脚本被称为201505041911076_InitialCreate.

我通过重命名数据库中的 MigrationID 以匹配我的代码中的那个来解决这个问题。

我不太清楚我是如何陷入这种情况的,但重命名 MigrationID 意味着应用程序知道脚本已经运行。

于 2015-05-05T09:25:23.790 回答
0

如果您的上下文是我的:添加了一个新的实体类,但是,当我尝试迁移它时显示此错误,请尝试从数据库上下文中删除该对象,然后运行 ​​update-database 并再次添加该对象并重新运行 update-database

例如:

public DbSet<CustomizedEmail> CustomizedEmail { get; set; }
public DbSet<KeyWordsForEmail> KeyWordsForEmail { get; set; }
public DbSet<Notice> Notice { get; set; }//remove it>run update-database>
//add again the above entity and rerurn update-database

无论您是否有数据,这都有效。在此过程中,您将丢失该表中的数据。

于 2016-08-30T07:10:07.573 回答