luktom.net
  • blog
  • kontakt
  • english





WCF Data Services i DataGridView – wyświetlanie relacji

31 sie, 2010
C#
1 komentarz
Odsłony : 4353

Często zachodzi potrzeba wyświetlenia danych pobranych z WCF Data Service w DataGridView. O ile wyświetlanie pól typów podstawowych nie stanowi żadnego problemu i dzieje się to automatycznie po przypisaniu DataSource do kontrolki DataGridView, o tyle jeśli pobieramy złożoną encję, która zawiera relację, trzeba pamiętać o kilku dodatkowych rzeczach.

Przede wszystkim należy pamiętać o zapytaniu uwzględniającym relacje danej encji. W praktyce sprowadza się to do użycia metody Extend w zapytaniu:

// ent - proxy do WCF Data Service
List<User> users = ent.Users.Expand("Company").ToList();

Drugą istotną sprawą jest formatowanie tego, co ma wyświetlić się w kolumnie dla pola będącego relacją. Aby zamiast domyślnie wyświetlanej nazwy klasy przypisać własną wartość, należy utworzyć klasę częściową dla danej encji oraz nadpisac jej metodę ToString().

Kontynuując powyższy przykład, tworzymy klasę częściową Company i nadpisujemy jej metodę ToString():

public partial class Company
{
  public override string ToString()
  {
      return this.CompanyName;
  }
}

Po wykonaniu powyższych zabiegów, wystarczy proste przypisanie:

// dgvUsers - nasz DataGridView
dgvUsers.AutoGenerateColumns = true;
dgvUsers.DataSource = users;

…aby wyświetlić tabelę Users z uwzględnieniem relacji do tabeli Company, z własnym określeniem, co ma się w polu Company wyświetlać.

Oczywiście osobnym problemem jest fakt niskiej wydajności Expand (z racji łączenia po stronie klienta, a nie bazy danych), ale to temat na inny wpis.



Tagi :   .netado.netc#datagridviewwcf data services

Powiązane wpisy

  • C# i uruchamianie procesu z uprawnieniami administratora

  • Topshelf czyli usługi Windows z górnej półki

  • Ciekawe komendy linii poleceń Windows XP – część 1

  • Nancy i StructureMap

  • Komentarze ( 1 )

    • luktom.net paź 21 , 2010 at 17:11 /

      Nice. Greetings from the Speedy DNS.


    Dodaj komentarz

    Click here to cancel reply

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>





    Łukasz Tomaszkiewicz

    Łukasz Tomaszkiewicz

    Pasjonat chmury, szczególnie AWSa, który nieustannie automatyzuje powtarzające się czynności i optymalizuje procesy, przy okazji wdrażając dobre praktyki dotyczące bezpieczeństwa. Jego szerokie doświadczenie w zakresie tworzenia oprogramowania, projektowania baz danych, a także wirtualizacji serwerów i zarządzania infrastrukturą w chmurze pozwala mu spojrzeć przekrojowo na współczesny stack technologiczny.

    W wolnym czasie fotograf, sporadycznie piszący blogger :) a także regularny prelegent na krakowskich grupach związanych z IT.

    Wyznawca Vim'a :)

    Kategorie

    • Ansible
    • AWS
    • C#
    • Chatboty
    • Cloud
    • Daj się poznać 2017
    • Docker
    • Inne
    • Linux
    • Open source
    • Organizacyjne
    • Prelekcje
    • Sieci komputerowe
    • SQL Server
    • Windows
    • Windows Server
    • Wirtualizacja

    Najczęściej czytane

    • Creating single node VSAN cluster
    • SQL Server – walidacja numerów PESEL i NIP
    • Konfiguracja serwera DHCP na routerach Cisco
    • Aktywacja routingu IP w Windows 7 / Windows Server 2008
    • Konwersja maszyn wirtualnych z ESXi do Hyper-V przy użyciu SCVMM 2012
    • Jak podłączyć program R do SQL Servera?

    Tagi

    .net ai ansible asp.net mvc aws aws cli bot builder bot framework c# centos certyfikaty chatbot chatboty cisco cmd docker dsp2017 esxi hyperv kontenery konteneryzacja linux mvc nlp openvpn plssug pobieranie powershell prelekcje rancher redhat router sieci smogbot sql server ssd ssl vmware vsphere windows windows mobile windows server wirtualizacja wit.ai wrzuta

    Copyright © 2006-2018 by Łukasz Tomaszkiewicz. Wszelkie prawa zastrzeżone