我有两个实体模型,系列和夹具。系列可以具有夹具并且夹具可以具有系列。以下是两个实体的简化版本。
Series.cs
public class Series
{
public int Id { get; set; }
public int? FixtureId { get; set; }
public virtual Fixture Fixture { get; set; }
}
Fixture.cs
public class Fixture
{
public int Id { get; set; }
public int? SeriesId { get; set; }
public virtual Series Series { get; set; }
}
然后我的流利如下:
modelBuilder.Entity<Series>()
.HasOptional(a => a.Fixture)
.WithOptionalPrincipal(a => a.Series);
我不知道是否需要使用某些注释标记我的属性,或者我的流畅配置是否不正确。
使用此特定示例,当我尝试运行update-database -verbose
时,我收到以下错误索引&#39; IX_Series_Id&#39;取决于列&#39; Series_Id&#39;。 ALTER TABLE DROP COLUMN Series_Id失败,因为一个或多个对象访问此列。
当前迁移代码:
public override void Up()
{
DropIndex("dbo.Series", new[] { "FixtureId" });
RenameColumn(table: "dbo.Fixture", name: "FixtureId", newName: "Series_Id");
CreateIndex("dbo.Fixture", "Series_Id");
}
public override void Down()
{
DropIndex("dbo.Fixture", new[] { "Series_Id" });
RenameColumn(table: "dbo.Fixture", name: "Series_Id", newName: "FixtureId");
CreateIndex("dbo.Series", "FixtureId");
}