c# - 数据库中已经有一个名为 'tableName' 的对象

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

我想创建数据库并使用 Entity Framework ,但是当我运行我的 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; }

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

最佳答案

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

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

关于c# - 数据库中已经有一个名为 'tableName' 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19345146/

相关文章:

c# - 如何从 Visual Studio 中手动终止特定(正在运行的)线程

c# - X509Certificate2 错误 - 系统找不到指定的文件

mysql - 如何将一列数据显示为固定值,而另一列正常显示,两列来自同一列数据?数据库

mysql - sql where 条件

sql-server - SQLite 国家化字符串指示器

sql - 计算一次查询中跨多个表的行数

c# - Visual Studio 2010 Crystal 报告 wpf

c# - 如何将自定义语言 REPL 添加到 Visual Studio

SQL:将行转换为列以实现可变的行数

sql-server - SQL 数据库从 Azure VM 转换到 Azure SQL 数据库 - 新数据库的大小明显更小?