У меня есть ListView, который я заполнил из представления SQL Server и который называется view_ListaKlientow
с помощью этого запроса:
private void fillClientsList() {
using (var context = new EntityBazaCRM()) {
var listaKlientow = from d in context.view_ListaKlientow
select d;
objectListViewListaKlientow.SetObjects(listaKlientow.ToList());
objectListViewListaKlientow.AutoResizeColumns();
}
}
Затем, после того как пользователь дважды щелкнул одну строку в ListView, я прочитал ID
из view_ListaKlientow
и используйте fillClientGui
для заполнения необходимых полей в графическом интерфейсе (для теста включено только одно поле).
private void objectListViewListaKlientow_DoubleClick(object sender, EventArgs e) {
foreach (view_ListaKlientow user in objectListViewListaKlientow.SelectedObjects) {
int id = user.KlienciID;
fillClientGui(id);
TabPageActivate(tabControlMain, tabPageKlient);
}
}
private void fillClientGui(int klientId) {
using (var context = new EntityBazaCRM()) {
IQueryable<Klienci> klient = context.Kliencis.Include("Podmioty").Where(d => d.KlienciID == klientId);
foreach (var source in klient.ToList()) {
textNIP.Text = source.Podmioty.PodmiotNIP;
}
}
}
Теперь мне интересно, так как я точно знаю, что я запрашиваю один идентификатор, я должен получать только определенного клиента, а не список клиентов, поэтому foreach
из fillClientGui
просто для обходчиков IQueryable<Klienci>
кажется дополнительным ненужным кодом.Или это как это сделать?Я пытаюсь выучить сущность, и некоторые вещи мне пока не ясны:)