Αρχικά, ας δούμε τη βάση δεδομένων, τα πεδία Πόλη, Νομός, μερικά από τα οποία έχουν μηδενικές, δηλαδή μηδενικές τιμές.
Τα δεδομένα που ρωτήσαμε είναι όπως φαίνεται στο παραπάνω σχήμα, εφόσον υπάρχουν μηδενικά δεδομένα στην πόλη και την κομητεία, δεν εμφανίζεται ολόκληρη η γραμμή δεδομένων.
Λύση:
Κώδικας στην αρχή:
- 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();
Αντιγραφή κώδικα
Τροποποιημένος κώδικας:
- 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();
Αντιγραφή κώδικα
Τα δεδομένα εμφανίζονται κανονικά μετά την τροποποίηση! Όπως φαίνεται στο παρακάτω σχήμα.
|