我尝试在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如何在此连接查询中执行此操作。
请帮助。
答案 0 :(得分:3)
你的匿名类型定义中有布尔比较...
将您的on子句更改为以下内容:
join cstevntrle in _customerEventRoleRepository.Table on
new { CustomerId = customers.Id, EventId = model.Event.EventId } equals
new { CustomerId = cstevntrle.CustomerId, EventId = cstevntrle.EventId }
我没有看到"模特"在任何地方定义,所以我不确定这是否会起作用,但它应该足以证明基于多个字段的连接是如何工作的 - 每个匿名类包含来自一个" side"的字段。加入。