繁体   English   中英

实体框架用法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM