我想使用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() –