繁体   English   中英

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

[英]There is already an object named 'tableName' in the database

我想创建数据库,并使用实体框架,但是当我运行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不知道该数据库不需要迁移。

解决此问题的最简单方法是删除现有数据库,并查看您的应用程序是否可以创建新的干净数据库。 (显然,如果您有一个实时的生产数据库,则不能执行此操作。)否则,您需要创建一个初始迁移并强制其应用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM