我想使用LINQ来比较列表并返回通用对象。将Enumerable与linq查询中的枚举进行比较
我的目录型号包含supplierMaterials
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);
我怎样才能得到所有所有的目录从每一个子公司supplierMaterials对于一个给定的环境呢?
无关,但'user.Environment.FirstOrDefault()如果'FirstOrDefault'返回null Subsidiary'会抛出异常。如果总是有一个,那么你可能应该使用'First()'。否则,您将需要一个空检查。 –
环境总是有一个,已经将其更改为First() –