通过 Fluent API 的 EF Core 外键

EF Core Foreign Key via Fluent API

我有一个 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 类.

中添加数据注释

你有一个One-to-one relationship with single navigation property, principal entity Item and dependent entity ItemStats, using the so called shared primary key association,其中从属实体PK也是主体实体的FK。

一对一关系的流利 API 是 HasOneWithOneHasForeignKeyHasPrincipalKey。请注意,此处 HasForeignKeyHasPrincipalKey 的通用类型参数(一对多关系通常省略)很重要,因为它们标识了哪个实体是主体,哪个实体是依赖的。

话虽如此,您的模型的流畅配置是:

modelBuilder.Entity<ItemStats>()
    .HasOne(e => e.Item)
    .WithOne()
    .HasForeignKey<ItemStats>(e => e.Id);