1

我尝试在 Linq 中创建一个连接查询。我想加入一个表多个相同的字段

桌子。请在下面查看我的代码。

var roles = (from ords in _orderRepository.Table 
                         join customers in _customerRepository.Table on ords.CustomerId equals customers.Id
                         join ordprvrnts in _orderProductVariantRepository.Table on ords.Id equals ordprvrnts.OrderId
                         join prdvrnts in _productVariantRepository .Table on ordprvrnts.ProductVariantId equals prdvrnts.Id
                         **join cstevntrle in _customerEventRoleRepository.Table on 
                             new{  customers.Id equals cstevntrle.CustomerId } && 
                             new { cstevntrle.EventId == model.Event}**
                         orderby customers.Email ascending
                         select new CustomerEventRolesModel
                         {

                             Customer = customers.Email,
                             CUstomerId =customers.Id

                         });

我尝试使用 CustomerId 和 EventId 过滤 customerEventRoleRepository.Table

我怎么能在这个连接查询中做到这一点。

请帮忙。

4

1 回答 1

3

你的匿名类型定义中有布尔比较......

将您的 on 子句更改为以下内容:

join cstevntrle in _customerEventRoleRepository.Table on 
    new { CustomerId = customers.Id, EventId = model.Event.EventId } equals 
    new { CustomerId = cstevntrle.CustomerId, EventId = cstevntrle.EventId }

我没有在任何地方看到“模型”定义,所以我不确定这是否会起作用,但它应该足以演示基于多个字段的连接是如何工作的——每个匿名类都包含来自一个“侧面”的字段加入。

于 2013-03-27T06:54:03.313 回答