Guten Tag,C# Linq-Abfrage Filter Kind Sammlung
Ich habe eine Modellklasse wie unten
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;}
}
Ich möchte nur die Liste der Mitarbeiter abgefragt werden zusammen mit ihrer Liste der Zahlungen mit Linq. also ich Code wie folgt:
diese Auflistung zeigen alle Mitarbeiter und alle ihre Zahlungen. aber ich muss jeden Mitarbeiter filtern Zahlungen, die IsPosted = 1
so als erste Antwort, diesen Code tun;
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);
}
meine Frage ist, gibt es einen anderen Weg, es viel einfacher zu codieren? etwas wie das.
dbcontext db = new dbcontext();
var listing = from d in db.Employees
.include(d => x.Payments.IsPosted == 1)
select d;
im mit curently EntityFramework 5
ive Forschung in Bezug auf das für mich mir nicht funktioniert Link
Hoffnung jemand helfen
Dank im Voraus Jungs
Es funktioniert wie ein Charme .. !!! Danke für die Unterstützung von Sir Ivan .. Sir ivan kann ich fragen, wo ich mehr in linq lernen kann? irgendwelche Links oder Bücher? Ich hoffe, von Ihnen zu hören Herr BITTE; (... – Neil
Hallo Neil, ich weiß wirklich nicht, was ich dir vorschlagen soll. Ich bin mir sicher, dass es für LINQ viele gute Bücher/Links gibt, aber ich persönlich habe alles aus MSDN-Themen gelernt und hauptsächlich experimentiert. Beachten Sie, dass verschiedene LINQ-Implementierungen Besonderheiten aufweisen, so dass das obige Beispiel für den neuesten EF Core gelten kann oder auch nicht. –
Gibt es eine gleichwertige Möglichkeit, dies mit linq in ef6 zu tun? Ich habe die gleiche Logik in ef6 versucht, aber es filtert die Kind-Sammlung nicht. – overloading