1

我有一个类似于下面代码的类设置。

public abstract class Record<T>
where T : class
{
    [Key]
    public long Id { get; set; }

    public long MasterId { get; set; }

    [ForeignKey("MasterId")]
    public virtual T Master { get; set; }

    [InverseProperty("Master")]
    public virtual ICollection<T> Suggestions { get; set; }
}

这使我可以使用最少的样板代码创建如下所示的类,这些样板代码可以包含“建议” - 小的更改,然后在获得批准后合并。

public class Concrete : Record<Concrete>
{
    public string Foo { get; set; }
}

在 EF5 中,这曾经完美地工作。但是,我现在在运行时收到以下错误消息:

导航属性 'Suggestions' 所指的实体类型 'Foo.Models.Concrete' 与类型 'Foo.Models.Record`1[[Foo.Models.Concrete, Foo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' 声明了反向导航属性 'Master'。

有什么办法可以解决这个问题,还是有更好的设计结构可以用来解决这个问题?

4

0 回答 0