可选的一对一关系 - Code First C#

时间:2017-05-13 17:40:29

标签: c# entity-framework relationship

我试图在两个实体之间建立双向可选关系:

  • 系列
  • 夹具

A系列有一个可选夹具,夹具有一个可选系列。这是我到目前为止的两个实体类。

public class Fixture : IEntityBase
{
    public int Id { get; set; }
    public DateTime Date { get; set; }
    public int? SeriesId { get; set; }

    public virtual Series Series { get; set; }
}

public class Series : IEntityBase
{
    public int Id { get; set; }
    public int? FixtureId { get; set; }

    public virtual Fixture Fixture { get; set; }
}

当我尝试使用此更新数据库时,出现以下错误:

  

"无法确定之间关联的主要结束   类型'夹具'和'系列'。这个协会的主要目的   必须使用关系fluent API显式配置   或数据注释。"

所以我将这一行添加到我的ModelBuilder中,更新数据库运行良好,并创建表。

modelBuilder.Entity<Fixture>().HasOptional(f => f.Series).WithOptionalPrincipal(f => f.Fixture);

但是当我在SQL中查看我的数据库时,有一个名为Fixture_Id的不必要的列让我认为我的实体设置不正确。

Series table example

当我在调试模式下返回Series列表时,我可以看到其中一个Series有一个FixtureId,如上图所示,但与Fixture的关系为null。

希望我提供了足够的信息。

感谢您提前提供任何帮助。

0 个答案:

没有答案