【发布时间】:2011-04-05 09:54:20
【问题描述】:
我有一个 Product 对象,里面有一个相关的 Category。
我将产品和类别之间的关系视为一对多。但 Category 也可以为 null。
问题是我似乎无法处理空类别对象。
我在我的产品类中尝试了以下内容:
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(确实有一个值)。
如何设置我的模型来处理空类别?
【问题讨论】:
-
模型可能不是这个的最佳位置。我建议创建一个部分类并在那里处理它。您是否有理由需要在模型中处理它?
-
但是我在一个类(产品类)中处理它,虽然是的,那是模型......您是否建议在我的设计层和模型之间添加另一层以检查空值?
-
顺便说一句。你知道CTP5是过时的版本吗?当前版本是 EF 4.1 RC。
-
@Ladislav Mrnka 谢谢,我去看看
标签: entity-framework ef-code-first entity-framework-ctp5