我正在使用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();
});
答案 0 :(得分:3)
您的ParentCategoryId
已经是可选的,因为它可以为空。如果它不可为空,那就是必需的。您不需要进一步配置它。
注意,您不需要将CategoryId
配置为Category
的密钥。它将被配置为密钥,因为它已遵循实体密钥的命名约定。