好日子,C#LINQ查詢過濾器子集合
我有一個像下面
public class EmployeeModel
{
[Key]
public int employeeId{get;set;}
public string Fullname {get;set;}
public string Address{get;set;}
public ICollection<PaymentModel> Payments {get;set;}
}
public class PaymentModel
{
[Key]
public int PaymentId{get; set;}
public int employeeId{get; set;}
public decimal PaymentAmount{get; set;}
public int IsPosted {get; set;}
public virtual EmployeeModel Employee {get; set;}
}
我只是想與他們使用LINQ付款列表一起查詢員工列表中選擇一個模型類。所以我這樣的代碼:
dbcontext db = new dbcontext();
var listing = from d in db.Employees
.include("Payments")
select d;
此列表顯示所有員工及其所有付款。 但我需要過濾每個員工付款,IsPosted = 1
所以最初的答案,虐待這樣的代碼;
dbcontext db = new dbcontext();
List<EmployeeModel> FinalList = new List<EmployeeModel>();
var listingofEmp = db.employee.ToList();
foreach(EmployeeModel emp in listingofEmp){
emp.Payments= db.payments.where(x => x.IsPosted == 1).ToList();
FinalList.Add(emp);
}
我的問題是,是否有任何其他方式來更容易編碼?像這樣的東西。
dbcontext db = new dbcontext();
var listing = from d in db.Employees
.include(d => x.Payments.IsPosted == 1)
select d;
IM curently使用的EntityFramework 5
香港專業教育學院的研究把它不爲我工作Link
希望有人能幫助我
在此先感謝傢伙
它的工作原理就像一個魅力.. !!!謝謝你幫助先生伊萬..先生伊萬我可以問我在哪裏可以瞭解更多linq?任何鏈接或書籍?希望聽到你的先生請;(... – Neil
嗨尼爾,我真的不知道該怎麼建議你。林肯定LINQ有很多優秀的書籍/鏈接,但我個人從MSDN主題學到了一切,主要是嘗試。請注意,不同的LINQ實現具有特定的細節,因此上面的例子可能適用於或不適用於最新的EF Core。 –
有沒有在ef6中使用linq做同樣的方法?我在ef6中嘗試了相同的邏輯,但它沒有過濾子集合。 – overloading