[英]Entity framework usage
我有一个从SQL Server视图中填充的ListView,名为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中的一行后,我从view_ListaKlientow
读取ID
,并使用fillClientGui
填充gui中的必要字段(对于测试,仅包含一个字段)。
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;
}
}
}
现在,我想知道我确切地在查询一个ID,所以我应该只获取特定的客户端,而不要获取客户端的列表,因此,从fillClientGui
foreach
IQueryable<Klienci>
似乎是其他不必要的代码。 还是这应该怎么做? 我正在尝试学习Entity,但有些事情对我来说还不是很清楚:)
如果您确定只有一个实例FirstOrDefault()
数据库中返回,则可以在这种情况下使用扩展函数FirstOrDefault()
:
var source = context.Kliencis.Include("Podmioty").Where(d => d.KlienciID == klientId).FirstOrDefault();
textNIP.Text = source.Podmioty.PodmiotNIP;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.