實體框架核心自引用可選屬性

c# entity-framework-core

我正在使用Microsoft.EntityFrameworkCore.Sqlite v1.0.1。這是我的實體:

public class Category
{
    public int CategoryId { get;set;}
    public Category ParentCategory { get; set; }
    public int? ParentCategoryId { get; set; }
    public string Name { get; set; }
    public DateTime DateCreated { get; set; }
    public DateTime DateModified { get; set; }
}

所以我需要將ParentCategory配置為可選屬性。我怎麼能在EF核心中這樣做?這是我迄今為止流暢的映射:

modelBuilder.Entity<Category>(e =>
{
    e.HasKey(c => c.CategoryId);

    e.Property(c => c.DateCreated).ValueGeneratedOnAdd();
    e.Property(c => c.DateModified).ValueGeneratedOnAddOrUpdate();
});

一般承認的答案

您的ParentCategoryId已經是可選的,因為它可以為空。如果它不可為空,那將是必需的。您無需進一步配置它。

注意,你不需要配置CategoryId為重點的Category 。它將被配置為密鑰,因為它已遵循實體密鑰的命名約定。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow