Linq左连接

项目中使用的左连接的例子:


var query = from store in dtStore.AsEnumerable()
join sales in dtSales.AsEnumerable() on store.Field<string>("StoreCode") equals sales.Field<string>("StoreCode") into storeSales
from sales in storeSales.DefaultIfEmpty()
join bond in dtBond.AsEnumerable() on store.Field<string>("StoreCode") equals bond.Field<string>("DeptID") into storeBonds
from bond in storeBonds.DefaultIfEmpty()
join social in dtSocial.AsEnumerable() on store.Field<string>("StoreCode") equals social.Field<string>("DeptID") into storeSocials
from social in storeSocials.DefaultIfEmpty()

let A07 = bond == null ? 0 : bond.Field<decimal>("A07")
let A08 = bond == null ? 0 : bond.Field<decimal>("A08")
let A22 = bond == null ? 0 : bond.Field<decimal>("A22")
let A03 = bond == null ? 0 : bond.Field<decimal>("A03")
let A09 = bond == null ? 0 : bond.Field<decimal>("A09")

let A20 = bond == null ? 0 : bond.Field<decimal>("A20")
let A14 = bond == null ? 0 : bond.Field<decimal>("A14")
let SaleAmount = sales == null ? 0 : sales.Field<decimal>("Amount")
let socialAmount = social == null ? 0 : social.Field<decimal>("SocialSecurityAmount")
select new
{
StoreCode = store.Field<string>("StoreCode"),
StoreName = store.Field<string>("StoreName"),

DictionaryValue = store.Field<string>("DictionaryValue"),
Amount = SaleAmount,
BasicSalary = A90,
Bonud1 = A07,
Bound2 = A08}

posted on 2017-11-16 18:00  wendy wang  阅读(617)  评论(0编辑  收藏  举报

导航