0

在 EF 通用存储库中,我的 Query 方法如下:

public IEnumerable<T> Query(Expression<Func<T, bool>> filter)
    {
        return objectSet.Where(filter);
    }

我已经使用这种方法来过滤数据,例如:

Repository.Query(a=>a.EntityId==selectedId);

下面是我的表格结构。

  1. 实体(ID、名称)
  2. 标题(Id、名称、EntityId)
  3. 级别(Id、名称、TitleId)

我知道 EntityId 并且基于我想从 Level 表中过滤数据,但是 Entity 和 Levle 表没有直接连接,Level 正在附加它们。

请指导我应该如何编写 lambda 表达式以传递给 Query 方法。

谢谢

编辑 ObjectSet 的类型是 Level。

4

1 回答 1

1

假设您为导航属性使用标准名称,您应该能够做到这一点:

Repository.Query(level => level.Title.Entity.EntityId == selectedId);

如果没有,您可以发布您的模型吗?

于 2012-08-09T02:39:01.737 回答