[英]LINQ to SQL in c# and database access
我不知道怎么问这个问题。 所以我只举一个例子。
码:
var db = new dbContext();
var dlo = new DataLoadOptions()
dlo.LoadWith<Order>(x => x.Company);
db.LoadOptions = dlo;
var compIds = prms.companies.Select(x => x.Id).ToArray();
正如我对上面的代码所理解的,我从Order表中加载Company,然后通过他们的ID获取公司。 和它一样吗?
var compIds = (from it in context.GetTable<Order>()
select it.Company.Id).ToArray();
? 或者我完全混淆了两个不同的概念?
我认为你对三件事感到困惑:
context.GetTable<Order>()
与context.Orders
相同(假设一切都配置正确。
您作为示例提供的查询并不等效; 他们问两个不同的问题。 首先是询问“给我所有的公司ID”。 甚至不会使用DataLoadOptions
。 第二个是要求给我每个订单的公司ID。 你会得到重复的。
DataLoadOptions
通常用于热切加载相关对象实例,而不是加入。
我认为你真正想要的是:
var uniqueCompanyIDsThatHaveAtLeastOneOrder = db.Orders.Select(o => o.Company.Id).Distinct();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.