使用来自集合

时间:2018-06-14 14:05:39

标签: entity-framework linq-to-sql

我正在使用实体框架从我的应用程序连接到数据库。我在SQL中有表,名为订单。它包含以下字段:TransactionId,ParticipantId并链接到交易表,该表与参与者表有一对多的连接。我需要使用具有以下属性的类列表从中获取数据:TransactionId,ParticipantId,OrganizationId。 Linq必须符合这样的条件:(orders.TransactionId == TransactionId && orders.ParticipantId == ParticipantId && orders.Transaction.Participants.Any(x=> x.Id == OrganizationId))。这应该由一个查询完成,而不是由多个查询完成,因此,请不要像这样推荐foreach或smth。

1 个答案:

答案 0 :(得分:0)

像@NetMage所说,一般我们都需要例子。假设你已经设置了dbcontext,问题非常简单:

public static void GetData(int transactionId, int participantId, int organizationId)
{
    using (var db = new MyDbContext())
    {
        var query =
            (
                from t in db.Transactions
                from o in db.Orders
                    .Where(w => w.TransactionId == t.TransactionId)
                from p in db.Participants
                    .Where(w => w.TransactionId == t.TransactionId)
                where t.TransactionId = transactionId &&
                    o.ParticipantId = participantId
                select new { Order = o, Transaction = t, Participant = p}
            );
    }
}

同样,由于我们在这里没有很多信息,因此很难做得更多。你应该可以从那里拿走它。我知道我没有使用organizationId过滤器,但由于我不知道数据的目标形状,我不确定最佳路径是什么