Mai întâi, să ne uităm la baza de date, câmpurile orașului, județului, unele dintre ele având valori nulle, adică valori nule.
Datele pe care le-am interogat sunt prezentate în figura de mai sus: atâta timp cât există date nule în oraș și județ, întreaga linie de date nu este afișată.
Soluție:
Cod la început:
- rc.children = (from rp in db.RegionPlace
- join a in db.PlaceInfo on rp.Province equals a.PlaceID
- join b in db.PlaceInfo on rp.City equals b.PlaceID
- join c in db.PlaceInfo on rp.County equals c.PlaceID
- where rp.RegionID == r.RegionID
- select new RegionClass { RegionName = "", Province = a.PlaceName, City = b.PlaceName, County = c.PlaceName }).ToList();
Cod de copiere
Cod modificat:
- rc.children = (from rp in db.RegionPlace
- join a in db.PlaceInfo on rp.Province equals a.PlaceID
- join b in db.PlaceInfo on rp.City equals b.PlaceID
- into btemp
- from bt in btemp.DefaultIfEmpty()
- join c in db.PlaceInfo on rp.County equals c.PlaceID
- into ctemp
- from ct in ctemp.DefaultIfEmpty()
- where rp.RegionID == r.RegionID
- select new RegionClass { RegionName = "", Province = a.PlaceName, City = bt.PlaceName == null ? "" : bt.PlaceName, County = ct.PlaceName == null ? "" : ct.PlaceName }).ToList();
Cod de copiere
Datele sunt afișate normal după modificare! Așa cum se vede în figura de mai jos.
|