Witam serdecznie.
Przechodzac od razu do sedan, zalozmy ze mam dwie tabele w dbml’u:
Customers (ID, Name)
Orders (ID, IDCustomers)
IDCustomers to obcy klucz FK_Orders.IDCustomers -> Customers.ID
Teraz wykonuje zapytanie:
DCDataContext dc = new DCDataContext(connection);
Customer = (from r in dc.Orders
select r).Single();
Nastepnie binduje query do grida.
Oczywiscie w kolumnie IDCustomers dostaje wartosc liczbowa zamiast Customers.Name.
Teoretycznie moge przy podlaczaniu wynikow do grida przejsc do Customers podajac cos takiego: Customer.Customers.Name tyle ze w tym przypadku Linq ponownie odpyta baze danych czego chcialem uniknac. (Podlaczanie do grida jest wykonywane w innej warstwie aplikacji i chcialbym uniknac w niej jakichkolwiek zapytan do bazy)
Innym pomyslem na rozwiazanie problemu bylo rozszerzenie klasy Orders o pole, powiedzmy _CustomerName i przy zapytaniu wyciagac pola recznie:
Customer = (from r in dc.Orders
select new {r.ID, r. Name, _CustomerName = r.Customers.Name}).Single();
Wtedy przy bindowaniu grida moglbym wybrac pole _CustomerNaem zamiast IDCustomers, tyle ze w tym przypadku to troche niewygodne.
Zastanawiam sie w jaki inny sposob moznaby rozwiazac ten problem.
Pewnie niejeden z was bindowal wyniki zapytania do gridow i mial podobny problem.
Pozdrawiam
Mariusz