0
我有以下左外基礎加盟,LINQ表Units
,GeoLocations
之間UnitStatuses
查詢和:如何將PredicateBuilder添加到我的左外連接
var currUnitResults = (from unit in pacificRepo.Units
join loc in pacificRepo.GeoLocations on new { unit.geo_location.Latitude, unit.geo_location.Longitude } equals new { loc.geo_location.Latitude, loc.geo_location.Longitude }
join st in pacificRepo.UnitStatuses on unit.c_number equals st.c_number into stj
from sublist in stj.DefaultIfEmpty()
select new
{
index = "0",
unit.c_number,
unit.serial_number,
unused = unit.location_at_address,
unit.ip_address,
unit.build_version,
status = (sublist.status == Pacific.Domain.Entities.UnitStatus.Statuses.COMPLETE) ? "<font color=\"green\">" + sublist.stage + "</font>" : "<font color=\"red\">" + sublist.stage + "</font>",
location = (loc == null) ? "Unknown" : loc.city + ", " + loc.state_abbrv,
unit.location_at_address,
latitude = unit.geo_location.Latitude,
longitude = unit.geo_location.Longitude
}).OrderBy(p => p.c_number).Skip(param.iDisplayStart).Take(param.iDisplayLength).ToList()
.Select(x => new object[] {
x.index, x.c_number, x.serial_number, x.unused, x.ip_address, x.build_version, x.status, x.location, x.location_at_address, x.latitude, x.longitude
}).ToList();
我要添加能夠動態地添加謂詞有條件地返回物品。我發現PredicateBuilder會在StackOverflow的各個地方被推薦,但我對兩件事情有些困惑。
鑑於我上述說法,實際上,我怎麼添加以下語句到它:
var searchPredicate = PredicateBuilder.True<Unit>(); searchPredicate = searchPredicate.And(u => u.geo_location.Latitude >= swLat);
我以爲我可以像
var currentUnitResults = (from unit....).Where(searchPredicate)
添加它,但是,這並不工作,因爲它已經評估領導發言到IQueryable<AnonymousType>
。給我的加盟,我該如何正確添加的連接表中的一個斷言,這樣我也可以寫這樣一份聲明:
searchPredicate = searchPredicate.And(loc => loc.city.Contains("Pittsburgh"));
任何幫助/指導表示衷心感謝在這。