我有一个Product对象,其中包含相关的类别。
我将产品和类别之间的关系作为一对一的关系。但是类别也可以为空。
麻烦的是我似乎无法处理null Category对象。
我在我的Product类中尝试了以下内容:
private Category _category;
public virtual Category Category
{
get { return _category ?? (_category = new Category()); }
set { _category = value; }
}
在我的数据库上下文OnModelCreating方法:
modelBuilder.Entity<Product>()
.HasRequired(p => p.Category)
.WithMany(c => c.Products)
.HasForeignKey(p => p.CategoryId);
不幸的是,在我的设计图层中访问Product.Category时,它总是返回New Category实例,而不是尝试通过Product.CategoryId( 有一个值)拉出Category。 / p>
如何设置我的模型来处理null Category?
答案 0 :(得分:0)
如果Category
是可选的(因为它可以为null),则必须使用:
modelBuilder.Entity() .HasOptional(p =&gt; p.Category) .WithMany(c =&gt; c.Products) .HasForeignKey(p =&gt; p.CategoryId);
将您的产品定义为:
public class Product
{
...
public int? CategoryId { get; set; }
public virtual Category { get; set; }
}