实体框架,难以从列表/集合中提取和显示信息

本文关键字:集合 提取 信息 显示 列表 框架 实体 | 更新日期: 2023-09-27 18:22:28

我一直在网上关注示例,并编写了以下内容。组合框工作正常,ID向后拉也很好。

问题1:我是否总是需要使用foreach循环来访问创建的列表中的数据

    impactmodel context = new impactmodel();
    var information = from i in context.Sites
                      where i.Site_ID == value
                      select i;
    foreach (var item in information)
    {
        textBox3.Text = item.Site_DisplayName;
        textBox2.Text = item.Site_Fax_Number.ToString();
    }

现在我知道信息中只有一个结果,但我不能像那样访问它

information.Site_DisplayName;
information.Site_Fax_Numeber.ToString();

当只返回一个结果时,有没有更简单的方法可以做到这一点?

问题2:我有另一个表,它也链接在实体模型中,称为合同。我认为通过Lazy Loading(它与模型中的Sites表隐式关联)可以很容易地从中获取值,但我必须在linq查询中进行联接,将其放入列表中,然后用foreach循环处理它以获取值。

没有更简单的方法吗?我想我错过了一些基本的东西。

实体框架,难以从列表/集合中提取和显示信息

如果您只是这样做:

var information = context.Sites.Single(x => x.Site_ID == value);

那么information将是您想要的项目,而不是仅包含您想要的单个项目的集合。请注意,如果没有一个项目,这将失败。

第二个问题看.Include("NavigationPropery").Include(x=>x.NavigationProperty)类似

from o in context.Order.Include(x=>x.OrderRow)
where o.Id == someValue
where 0.OrderRow.Id == someOtherValue
select o