【发布时间】:2017-07-31 16:10:03
【问题描述】:
我有一个域模型,该模型具有以正常的一对多关系配置的实体集合,但是我想在该模型中使用 FK 存储对该集合中特定项目的引用
模型中定义的列表
public ICollection<SLWOUpdate> Updates { get; set; }
对列表中特定项目的引用
public int? SLWOUpdateId { get; set; }
[ForeignKey("SLWOUpdateId")]
public virtual SLWOUpdate LastUpdate { get; set; }
当然,代码负责更新特定项目,而不是让 EF 来做。
这种关系可以在 EF 中配置吗?
我想这样做的原因是为了查询过滤目的,作为必须作为一个语句执行的复杂查询的一部分
【问题讨论】:
-
您可以像这样构建您的模型,Entity Framework 将不会自动将
LastUpdate设为最后一次更新(任何时候您将SLWOUpdate添加到Updates属性对于父母,您必须手动更新LastUpdate(或构建某种方便的方法来做到这一点)。 -
在将 SLWOUpdate 实体添加到集合中时,我会手动更新它,它会一直工作,直到拉动实体及其更新集合为止。EF 抱怨在名为 SLWOUpdate_Id 的 SLWOUpdate 实体上需要一个 Fk。
标签: entity-framework c#-4.0 ef-code-first