ef6 常用方法
#ef6 左连接写法--from baidu
using (var context = new DbContext())
{
var query = from t1 in context.LeftTable
join t2 in context.RightTable on t1.Id equals t2.LeftId into temp
from t2 in temp.DefaultIfEmpty()
select new
{
LeftItemId = t1.Id,
LeftItemName = t1.Name,
RightItemId = t2 != null ? t2.Id : (int?)null,
RightItemName = t2 != null ? t2.Name : (string)null
};
var results = query.ToList();
}
#分组 合计
#
var invoices2 = await _dbContext.Beneficiaries
.Where(dbEntry => dbEntry.Id == beneficiaryId && dbEntry.ProviderId == providerId)
.SelectMany(dbEntry => dbEntry.Invoices
.GroupBy(dbEntry => dbEntry.IssueDate.Month)
.Select(dbEntry => new
{
IssueMonth = dbEntry.Key,
VAT = dbEntry.Sum(invoice => invoice.VAT),
TotalPay = dbEntry.Sum(invoice => invoice.InvoiceEntries.Sum(entry => entry.DelegateHourlyRate)),
TotalSell = dbEntry.Sum(invoice => invoice.InvoiceEntries.Sum(entry => entry.BeneficiaryHourlyRate))
}))
.Where(group => group.IssueMonth <= _todayDate.UtcNow.Month && group.IssueMonth >= _todayDate.UtcNow.Month - (int)by)
.ToListAsync();
浙公网安备 33010602011771号