如何在 EF 多对多关系中指定加入者 table 的名称?
How do I specify the name of a joiner table in an EF many to many relationship?
我正在使用 EF Code First 6.2 和 Dev Express XAF
在 DevExpress.Persistent.BaseImpl.EF 中,事件 class 与资源 class 具有多对多关系。
如果我使用 Dev Express Wizard 和 Code First 创建一个新项目,那么加入者 table 将被称为 ResourceEvents
然而,在某些迁移中,我的加入者 table 被重命名为 EventResources。
如何将其设置回应有的状态?
我尝试将以下内容添加到 DBContext
modelBuilder.Entity<Event>().HasMany(x => x.Resources).WithMany(x => x.Events)
.Map(
x =>
{
x.MapLeftKey("Event_ID");
x.MapRightKey("Resource_Key");
x.ToTable("ResourceEvents");
});
这导致迁移想要创建
public partial class ev : DbMigration
{
public override void Up()
{
DropPrimaryKey("dbo.ResourceEvents");
AddPrimaryKey("dbo.ResourceEvents", new[] { "Event_ID", "Resource_Key" });
}
public override void Down()
{
DropPrimaryKey("dbo.ResourceEvents");
AddPrimaryKey("dbo.ResourceEvents", new[] { "Resource_Key", "Event_ID" });
}
}
运行 迁移导致错误
Cannot find the object "dbo.ResourceEvents" because it does not exist or you do not have permissions.
诀窍是向迁移添加代码以重命名 table
RenameTable(name: "dbo.EventResources", newName: "ResourceEvents");
拥有流利的 API 似乎很重要,因为它可以让 EF 知道 table 的名称应该是什么。
我正在使用 EF Code First 6.2 和 Dev Express XAF 在 DevExpress.Persistent.BaseImpl.EF 中,事件 class 与资源 class 具有多对多关系。
如果我使用 Dev Express Wizard 和 Code First 创建一个新项目,那么加入者 table 将被称为 ResourceEvents
然而,在某些迁移中,我的加入者 table 被重命名为 EventResources。
如何将其设置回应有的状态? 我尝试将以下内容添加到 DBContext
modelBuilder.Entity<Event>().HasMany(x => x.Resources).WithMany(x => x.Events)
.Map(
x =>
{
x.MapLeftKey("Event_ID");
x.MapRightKey("Resource_Key");
x.ToTable("ResourceEvents");
});
这导致迁移想要创建
public partial class ev : DbMigration
{
public override void Up()
{
DropPrimaryKey("dbo.ResourceEvents");
AddPrimaryKey("dbo.ResourceEvents", new[] { "Event_ID", "Resource_Key" });
}
public override void Down()
{
DropPrimaryKey("dbo.ResourceEvents");
AddPrimaryKey("dbo.ResourceEvents", new[] { "Resource_Key", "Event_ID" });
}
}
运行 迁移导致错误
Cannot find the object "dbo.ResourceEvents" because it does not exist or you do not have permissions.
诀窍是向迁移添加代码以重命名 table
RenameTable(name: "dbo.EventResources", newName: "ResourceEvents");
拥有流利的 API 似乎很重要,因为它可以让 EF 知道 table 的名称应该是什么。