【问题标题】:How to use LINQ expression tree to join to another table?如何使用 LINQ 表达式树加入另一个表?
【发布时间】:2010-11-10 21:58:08
【问题描述】:

我目前正在使用 nHibernate 的存储库模式。从一个实体(一个表)中选择时,我可以毫无问题地使用表达式树,但我想与另一个表进行内部连接以获得相关行。到目前为止,这是我所得到的:

public abstract class QueryBase<T>
{
    public abstract Expression<Func<T, bool>> MatchingCriteria { get; }

    public T SatisfyingElementFrom(IQueryable<T> candidates)
    {
        return SatisfyingElementsFrom(candidates).SingleOrDefault();
    }

    public IQueryable<T> SatisfyingElementsFrom(IQueryable<T> candidates)
    {
        return candidates.Where(MatchingCriteria).AsQueryable();
    }
}

public class UserByEmailAddress : QueryBase<User>
{
    private string _emailAddress;

    public UserByEmailAddress(string emailAddress)
    {
        _emailAddress = emailAddress;
    }

    public override Expression<Func<User, bool>> MatchingCriteria
    {
        get { return user => user.EmailAddress == _emailAddress; }
    }
}

我希望能够根据 OrderId 返回用户。类似的东西:

返回用户 => user.Id == Order.UserId

这在 LINQ 中很容易完成,但我在找出表达式树时遇到了问题,非常感谢任何帮助。

谢谢。

【问题讨论】:

    标签: linq expression


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 2016-07-01
    相关资源
    最近更新 更多