通过实体框架访问数据库时,我有三个可用的实体:
- stt_dictionary
- stt_concept
- stt_term
这些实体中的每一个都具有第四个实体 stt_change_log 的集合。
例如,
stt_dictionary.stt_change_log = ICollection<stt_change_log>
前 3 个元素与 stt_change_log 之间的关系是
stt_change_log.element_id = (stt_dictionary | stt_concept | stt_term).id;
但是,由于 stt_dictionary、stt_concept 和 stt_term 的 ID 类型均为int,因此还需要以下内容:
stt_change_log.element_type_id = (7 | 8 | 9)
现在,当我运行如下查询时,它返回具有指定 ID 的所有 stt_change_log 实体,这意味着如果我在 stt_dictionary.id = 1 时想要 stt_change_log 实体,我还会获得与 stt_concept 和 stt_term 实体相关的 stt_change_log 条目,其 ID 也= 1。换句话说,stt_change_log 集合需要额外的过滤。
var daoDictionary = (from d in db.stt_dictionary
.Include("stt_change_log.stt_change_types")
where d.id == id
select d).FirstOrDefault();
如何通过为 stt_change_log 集合中的每个项目指定 element_type_id 属性的值来过滤 stt_change_log 实体?
我还要补充一点,我的意图是在单个查询中执行此操作。