我有2个班级:
public class Item
{
public int Id { get; set; }
public string ItemName { get; set; }
}
public class ItemStats //inhenrit from Item
{
public int Id { get; set; }
public int MaxEnhanceLevel { get; set; }
public Item Item { get; set; }
}
这是一个TPT,但是由于不被支持,我不能使用继承。我知道如何使用数据注释来实现这一点
[ForeignKey(nameof(Item))]
public int Id { get; set; }
但是如何通过FluentAPI做到这一点?我不希望在Entitie类中使用数据注释。
答案 0 :(得分:1)
您拥有的是One-to-one与single navigation property,主体实体%
和从属实体Item
的{{3}}关系,即所谓的shared primary key association,实体PK也是主体的FK。
一对一关系的流畅API是ItemStats
,HasOne
,WithOne
和HasForeignKey
。请注意,此处的HasPrincipalKey
和HasForeignKey
的泛型类型参数(通常对于一对多关系会省略)很重要,因为它们可以标识哪个实体是主体,哪个是依赖的。
话虽如此,您的模型的流畅配置是:
HasPrincipalKey