LinqToSql:从查询中使用的列表中选择字段
本文关键字:列表 选择 字段 查询 LinqToSql | 更新日期: 2023-09-27 18:06:25
我对表Installation
执行查询,以获得查询不同数据库上的表Product
所需的id列表(在您询问之前,必须这样,不能跨dbs查询)。下面是列表的样子:
class Installation
{
Guid InstallationId
Guid ProductId
}
List<Installation> installs;
我没有任何问题使用这个列表查询到Product
表,看起来像这样:
var prods = (from p in context.Product
where installs.Select(i => i.ProductId).Contains(p.ProductId)
select new
{
ProductNumber = p.ProductNumber
// How do I get InstallationId from installs??
}).ToList();
我需要知道的是如何从列表中检索InstallationId并将其存储在新列表中?
你应该做一个join
var products = (from product in context.Product
join install in installs
on install.ProductId equals product.ProductId
select new {
ProductNumber = product.ProductNumber
InstallationId = install.InstallationId
}
).ToList();
稍微重构一下Jason的回答,以允许LinqToSql异常。
var products = (from product in context.Product
where installs.Select(i => i.ProductId).Contains(p.ProductId)
select product).ToList()
var installedProducts = (from product in products
join install in installs
on install.ProductId equals product.ProductId
select new
{
ProductNumber = product.ProductNumber,
InstallationId = install.InstallationId
}).ToList();