无法确定实体框架中类型之间关联的主要结束

时间:2016-07-01 10:41:21

标签: c# entity-framework code-first

 [DataContract]
public class Match
{
    [DataMember]
    public Guid Id { get; set; }

    public virtual Tour Tour { get; set; }

    [DataMember]
    public DateTime DateMatch { get; set; }


    public virtual Team Home { get; set; }

    public virtual Team Guest { get; set; }

    public virtual Result Result { get; set; }
}

[DataContract]
public class Result
{
    [DataMember]
    public Guid Id { get; set; }

    public virtual Match Match { get; set; }
    public virtual List<Goal> Goals { get; set; }

}

当我收到错误时,我试图在Entity Framework中执行此操作:

  

无法确定类型'OperationWithTeams.Result'和'OperationWithTeams.Match'之间关联的主要结尾。必须使用关系流畅API或数据注释显式配置此关联的主要结尾。

1 个答案:

答案 0 :(得分:0)

由于模型定义了MatchResult之间的循环引用,因此必须在模型构建器中明确定义所需的行为。

假设没有匹配就不能存在结果,但是匹配可以不存在结果,则匹配主体和结果依赖:

ModelBuilder.Entity<Match>().HasOptional(m => m.Result).WithRequired(r => r.Match);