EF存储库查询方法,如何在表达式中提及其他实体?

时间:2012-08-09 02:18:22

标签: c# .net linq entity-framework linq-to-entities

在EF通用repoistory中,我的查询方法如下:

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

我使用此方法过滤数据,如:

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

以下是我的表结构。

  1. 实体(身份证,姓名)
  2. 标题(Id,Name,EntityId)
  3. 级别(Id,Name,TitleId)
  4. 我知道EntityId并且我想要从Level表中过滤数据但是Entity和Levle表没有直接连接,Level正在附加它们。

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

    由于

    修改 ObjectSet类型为Level。

1 个答案:

答案 0 :(得分:1)

假设您使用导航属性的标准名称,您应该能够这样做:

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

如果没有,你可以张贴你的模特吗?