我一直在网上关注示例,并写了以下内容。组合框工作正常,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:我有另一个表,它也在名为contract的实体模型中链接。我认为通过Lazy Loading可以很容易地获得一个值(它与模型中的我的Sites表隐式关联)但是我必须在linq查询中进行连接,将其放入列表然后搞乱一下使用foreach循环来获取值。
有没有更简单的方法来做到这一点?我希望我在这里缺少一些基本的东西。
答案 0 :(得分:1)
如果您这样做:
var information = context.Sites.Single(x => x.Site_ID == value);
然后information
将是您想要的项目,而不是仅包含您想要的单个项目的集合。请注意,如果没有一个项目,这将失败。
答案 1 :(得分:0)
对于第二个问题,请查看.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