【问题标题】:There is already an object named 'tableName' in the database数据库中已经有一个名为“tableName”的对象
【发布时间】:2013-10-21 03:04:12
【问题描述】:

我想创建数据库并使用实体框架,但是当我运行我的 wpf 项目时,我遇到了这个错误。此错误出现在 2 个表中。在这里,我的错误:

using (var c = new RSPDbContext()) {
            var s = from v in c.Users select v;
        }

在 RSPDbContext.cs 中,我生成我的数据库。

public RSPDbContext()
        : base("databaseName")
    {
        Database.SetInitializer<RSPDbContext>((IDatabaseInitializer<RSPDbContext>)new MigrateDatabaseToLatestVersion<RSPDbContext, RSP.Common.Migrations.Configuration>());
    }

和 Configuration.cs:

public Configuration()
    {
        AutomaticMigrationsEnabled = true;
        AutomaticMigrationDataLossAllowed = true;
    }

在 app.config 中:

<connectionStrings>
    <add name="databaseName" connectionString="Data source=.\SQLExpress;Initial catalog=databaseName;Integrated Security=true; MultipleActiveResultSets=True;" providerName="System.Data.SQLClient" />
</connectionStrings>

在RSDPContext.cs中,弹出这个表时可以顺利创建:

public DbSet<tableName> tableNames { get; set; }

为什么我会犯这个错误?任何想法 ?提前致谢

【问题讨论】:

    标签: c# sql sql-server visual-studio sqlexception


    【解决方案1】:

    如果您在创建数据库后开始使用迁移,您可能会看到此错误,因为 EF 不知道此数据库不需要迁移。

    解决此问题的最简单方法是删除现有数据库并查看您的应用是否可以创建一个新的干净数据库。 (显然,如果您有一个实时生产数据库,则不能这样做。)否则,您需要创建一个 initial migration 并强制应用它。

    【讨论】:

      猜你喜欢
      • 2019-05-12
      • 2011-03-29
      • 2016-04-08
      • 2014-08-01
      • 2010-11-12
      • 2021-05-10
      • 1970-01-01
      • 2020-10-19
      • 2016-06-22
      相关资源
      最近更新 更多