【发布时间】:2015-10-16 23:30:57
【问题描述】:
我想使用 LINQ 比较列表并返回常见对象。
我有包含供应商材料集合的目录模型
public partial class Catalogs{
public int IdCatalog { get; set; }
public virtual ICollection<SupplierMaterials> SupplierMaterials { get; set; }
}
然后我有一个包含目录集合的子模型
public partial class Subsidiary{
public int IdSubsidiary { get; set; }
public virtual ICollection<Catalogs> Catalogs { get; set; }
}
然后我有 SupplierMaterials 模型
public partial class SupplierMaterials{
public int IdCatalog { get; set; }
public int IdSupplierMaterials{ get; set; }
}
我有一个拥有环境的用户。 一个环境有很多子公司,我想用所有的供应商材料进行 linq 查询 用户的子公司。 我有这个 linq 查询,但我不知道如何制作 where 子句
var subsidiary = user.Environment.First().Subsidiary;
query = (from x in db.SupplierMaterials
join y in db.Catalogs on x.IdCatalog equals y.IdCatalog
where y.Subsidiary.Any(subsidiary => y.Subsidiary)
select x);
对于给定环境,如何从每个子公司的所有目录中获取所有供应商材料?
【问题讨论】:
-
不相关,但如果
FirstOrDefault返回 null,user.Environment.FirstOrDefault().Subsidiary将抛出异常。如果总是有一个,那么您可能应该使用First()。否则,您将需要进行空检查。 -
环境总是有一个,已经改成First()
标签: c# linq ienumerable