gpt4 book ai didi

c# - Entity Framework 无效的对象名称 "dbo.EA_EmployeePerformance"

转载 作者:行者123 更新时间:2023-11-30 16:48:28 27 4
gpt4 key购买 nike

这很奇怪,因为我使用简单的成员资格初始化,我的 EF 模型无法创建新表。如果模型需要事务,我的代码能够创建所需的新表。

这是我的模型:

public class EmployeeDBContext : DbContext
{
public EmployeeDBContext()
: base("DefaultConnection")
{
Database.SetInitializer<EmployeeDBContext>(new CreateDatabaseIfNotExists<EmployeeDBContext>());
}

public DbSet<EA_Employee> Employees { get; set; }
public DbSet<EA_EmployeePerformance> EmployeePerformances { get; set; }
public DbSet<EA_EmployeeRank> EmployeeRanks { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}

[Table("EA_EmployeePerformance")]
public class EA_EmployeePerformance
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
[Display(Name = "Employee Performance Id")]
public int EmployeePerformanceId { get; set; }

[Index("Performance", IsUnique = true)]
[MaxLength(20)]
[Required]
public string Performance { get; set; }

public EA_EmployeePerformance()
{
Performance = "";
}
}

每当我 SaveChanges() 时,数据库都会抛出我

"Invalid object name dbo.EmployeePerformance".

我检查了数据库,数据库只包含简单成员资格所需的表。

如何在该模型发生事务时自动创建表?


---------- 已编辑 ----------

现在我知道我的问题是什么了。问题是因为我在一个数据库中使用了多个 dbContext。进行迁移会很棘手,因为迁移仅适用于一个 dbContext,不是吗?

所以在我的例子中,问题是因为来自简单成员的原始 AccountDBContext 正在接管我的数据库,这就是为什么我的其他 dbContext(例如 EmployeeDBContext)无法创建新表(如果我错了请纠正我)。

有没有办法将多个 dbContext 保存在一个数据库中?

最佳答案

首先,您必须将 Db Initializer 更改为 DropCreateDatabaseIfModelChanges,否则,您仍将拥有旧数据库,并且如果不手动删除数据库,您将永远无法获得模型更改。

database. It is gonna be tricky to do the migration because migration only works on one dbContext isn't it?

对于迁移,我建议您为迁移创建一个 DbContext,它调用包含所有 DbSet 和 POCO 对象的 Example MigrationDbContext,当 POCO 对象属于其他程序集时,也只需引用它们。

关于c# - Entity Framework 无效的对象名称 "dbo.EA_EmployeePerformance",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38116943/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com