仅通过 FluentAPI 使用外键定义 Entity Framework 关系

Define Entity Framework relationships using foreign keys only by FluentAPI

是否可以通过 FluentAPI(不应更改数据模型)仅使用外键(无引用类型的虚拟属性)来定义 Entity Framework 关系?

CardDataModel

public class CardDataModel
{
    public int CardId { get; set; }

}

CheckItemDataModel

public class CheckItemDataModel
{
    public int CheckItemId { get; set; }
    public int CardId { get; set; }
}

你可以做到这一点。

public class Card
{
    public int Id { get; set; }
}

public class CheckItem
{
    public int Id { get; set; }
    public int CardId { get; set; }
    public virtual Card Card { get; set; }
}

是的,在 EF Core 中是可能的。它不在 EF6 及以下版本中,但现在 EF Core 提供 HasMany / HasOne 的无参数重载,允许配置这样的关系:

modelBuilder.Entity<CardDataModel>()
    .HasMany<CheckItemDataModel>() // <-- note this
    .WithOne()
    .HasForeignKey(e => e.CardId);