Ich habe das folgende Datenbankmodell, ich muss die Firma Entität für einen bestimmten Benutzernamen aus der Tabelle AspNetUsers abfragen. Ich kann nicht filtern und Drill in die verwandten hierarchischen Tabellen mit Linq Lambda-Ausdruck mit Entity Framework. Alle meine Domain-Klassen haben ihre Fremdschlüssel und Navigationseigenschaften erforderlich. Ich würde jede Hilfe zu schätzen wissen.Linq für ein hierarchisches Beziehungsmodell mit Entity Framework, Filtern geschachtelter Tabellen
Q
Linq für ein hierarchisches Beziehungsmodell mit Entity Framework, Filtern geschachtelter Tabellen
1
A
Antwort
1
Aus meiner verstehe ich die Lösung gegeben. Ich hoffe, es kann dir helfen.
//Test Data
DataTable Companies = new DataTable();
Companies.Columns.Add("Companyid", typeof(string));
Companies.Columns.Add("CompanyName", typeof(string));
DataTable Teams = new DataTable();
Teams.Columns.Add("Companyid", typeof(string));
Teams.Columns.Add("TeamID", typeof(string));
DataTable ApplicationUserTeam = new DataTable();
ApplicationUserTeam.Columns.Add("TeamID", typeof(string));
ApplicationUserTeam.Columns.Add("ApplicationUserID", typeof(string));
DataTable AspnetUsers = new DataTable();
AspnetUsers.Columns.Add("ID", typeof(string));
AspnetUsers.Columns.Add("Name", typeof(string));
Companies.Rows.Add("10", "Infosys");
Companies.Rows.Add("12", "Tech mahindra");
Teams.Rows.Add("10", "T18");
Teams.Rows.Add("12", "T12");
ApplicationUserTeam.Rows.Add("T10", "120");
ApplicationUserTeam.Rows.Add("T12", "110");
AspnetUsers.Rows.Add("110", "king");
AspnetUsers.Rows.Add("112", "little");
var id = AspnetUsers.AsEnumerable().Where(s => s.Field<string>("Name").Equals("king")).Select(s => s.Field<string>("ID")).First();
var Teamid = ApplicationUserTeam.AsEnumerable().Where(s => s.Field<string>("ApplicationUserID").Equals(id)).Select(s => s.Field<string>("TeamID")).First();
var Companyid = Teams.AsEnumerable().Where(s => s.Field<string>("TeamID").Equals(Teamid)).Select(s => s.Field<string>("Companyid")).First();
var Company = Companies.AsEnumerable().Where(s => s.Field<string>("Companyid").Equals(Companyid));
foreach (var item in Company)
{
Console.WriteLine(item[0] + " " + item[1]);
}
0
ohne Ihre Datenbank Kontext usw. zu wissen, wäre es so etwas wie
db.Comapnies.Include(c => c.Teams
.Select(t => t.ApplicationUserTeam
.Select(aut => aut.AspNetUsers)));
+0
Ich möchte keine verwandten Entitäten einschließen, ich muss nur die Entität der Entität zurückgeben. Include wird immer alle verbundenen Entitäten einbeziehen. Ich dachte, Any() für die verwandten Entitäten zu verwenden, aber ich bin nicht sicher, wie der Linq-Ausdruck erstellt wird. –
Verwandte Themen
- 1. Ado.Net Entity Framework, Linq: select Multiples Tabellen
- 2. Linq To Entity Framework Auswahl ganze Tabellen
- 3. LINQ mit Entity Framework - Grundfrage
- 4. Entity Framework - LinQ-Projektionsproblem
- 5. Fehler mit Entity Framework .Any() filtern
- 6. ADO.Net Entity Framework/Linq
- 7. Filtern gehören Elemente in LINQ und Entity Framework
- 8. LINQ Join-Tabelle mit Entity Framework
- 9. Entity Framework linq zu Entitäten
- 10. Linq wählen Tablemapping (Entity Framework)
- 11. LINQ Abfrage Entity Framework wie Tabellen beitreten? Navigationseigenschaften?
- 12. Lokalisierte Tabellen und Entity Framework
- 13. Ist ein Outer Join mit Linq zu Entity Framework möglich
- 14. Wie mit mehreren Auswahlfeld Ergebnisse in Entity Framework filtern
- 15. ADO.NET Entity Framework - LINQ zu mehreren dbms
- 16. Wie schreibt man LINQ-Abfragen für CRUD mit Entity Framework?
- 17. Erstellen geschachtelter Gruppierungen mit Linq-Erweiterungsmethoden
- 18. Mocking ein Entity Framework-Modell?
- 19. ActiveRecord-Abfrage zum Filtern geschachtelter has_many-Zuordnungen
- 20. Entity Framework + LINQ + "Enthält" == Super Slow?
- 21. Entity Framework Einfacher Filter von NavigationProperty mit LINQ-Methoden
- 22. Unicode mit Entity Framework
- 23. Entity Framework - Get Liste der Tabellen
- 24. Splitting ein Entity Framework Linq-Abfrage verursacht enthält nicht
- 25. Entity Framework und LINQ To SQL - Interessenkonflikt?
- 26. Entity Framework 7 Migration erstellt keine Tabellen
- 27. Entity Framework: Regenerierung geänderter Tabellen (Schlüsseländerungen)
- 28. Entity Framework, das keine Klassen für Tabellen oder Prozeduren generiert
- 29. ein Standardobjekt erstellen für Entity Framework Navigationseigenschaft
- 30. LINQ und Entity Framework - Unterabfragen zu vermeiden
Dank sein. Diese Lösung funktioniert. Ich warte jedoch darauf, ob ich mit einem einzigen Linq-Ausdruck das gleiche Ergebnis erzielen kann. Vielleicht mit Any() -Methode für die Sammlungen. Ich bin mir nicht sicher. –
Ich hoffe, dass Sie suchen – King
var v = Companies.AsEnumerable() . Wo (c => c.Field ("CompanyID") == Teams.AsEnumerable() . Wo (t => t. Feld ("Mannschafts-ID") == ApplicationUserTeam.AsEnumerable() .Where (a => a.Field ("ApplicationUserID") == AspnetUsers.AsEnumerable(). Wo (u => u.Field (“ Name ") ==" König "). Wählen Sie (u => u.Feld (" ID ")). Zuerst()) . Wählen Sie (a => a.Field (" TeamID ")). Zuerst ()) .Wählen Sie (t => t.Field ("Companyid")). First()); –
King