62,243
社区成员




var assetList = myfaPCMList.Select(a => a.Asset).ToList();
var companyList = myfaPCMList.Select(b => b.Company).ToList();
var cnameList = myfaPCMList.Select(b => b.Cname).ToList();
var isValidList = myfaPCMList.Select(b => b.IsValid).ToList();
var ownerList = myfaPCMList.Select(b => b.Owner).ToList();
var equalList = myfaMafaList.Where(o => assetList.Contains(o.Asset) && companyList.Contains(o.Company) &&
cnameList.Contains(o.Cname) && isValidList.Contains(o.IsValid) && ownerList.Contains(o.Owner)).ToList();
var addList = myfaMafaList.Except(equalList).ToList();
var assetList2 = equalList.Select(a => a.Asset).ToList();
var companyList2 = equalList.Select(b => b.Company).ToList();
var cnameList2 = equalList.Select(b => b.Cname).ToList();
var isValidList2 = equalList.Select(b => b.IsValid).ToList();
var ownerList2 = equalList.Select(b => b.Owner).ToList();
var noEqualList = myfaPCMList.Where(o => !(assetList2.Contains(o.Asset) && companyList2.Contains(o.Company) &&
cnameList2.Contains(o.Cname) && isValidList2.Contains(o.IsValid) && ownerList2.Contains(o.Owner))).ToList();
_context.DeleteRange(noEqualList);
_context.AddRange(addList);
_context.SaveChanges();
from a in aList
from b in bList
where a.xx==b.xx && a.yy==b.yy //其它条件
类似这样写不就行了?为什么要每样都遍历出来后用contains?