【发布时间】:2010-03-16 13:07:33
【问题描述】:
我有一个包含 Invoices、AffiliateCommissions 和 AffiliateCommissionPayments 的实体模型。
发票到 AffiliateCommission 是一对多,AffiliateCommission 到 AffiliateCommissionPayment 也是一对多
我正在尝试进行查询,该查询将返回所有有佣金但不一定有相关佣金付款的发票。我想显示带有佣金的发票,无论他们是否支付佣金。
查询看起来像:
using (var context = new MyEntitities())
{
var invoices = from i in context.Invoices
from ac in i.AffiliateCommissions
join acp in context.AffiliateCommissionPayments on ac.affiliateCommissionID equals acp.AffiliateCommission.affiliateCommissionID
where ac.Affiliate.affiliateID == affiliateID
select new
{
companyName = i.User.companyName,
userName = i.User.fullName,
email = i.User.emailAddress,
invoiceEndDate = i.invoicedUntilDate,
invoiceNumber = i.invoiceNumber,
invoiceAmount = i.netAmount,
commissionAmount = ac.amount,
datePaid = acp.paymentDate,
checkNumber = acp.checkNumber
};
return invoices.ToList();
}
上面的这个查询只返回带有 AffiliateCommissionPayment 的项目。
【问题讨论】:
标签: c# linq linq-to-entities left-join