Hallo zusammen,
ich nutze das Entityframework und habe mir hier nach einem join ein neues Objekt erzeugt, dass mir die Ergebnisse der beiden Tabellen zurückliefert. Nun möchte ich aber abhängig davon, ob mir ein entsprechender Parameter übergeben wurde über eine zwewite Tabelle filtern oder nicht. Hierzu habe ich folgenden Code ausprobiert:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| public bool getPersonen(out myObject, int firmaID = 0){ IList<???> result; if( firmaID > 0 ) result = executeSQL( dbContext => from person in dbContext.List_Personen join firma in dbContext.List_Firmen_Person_Zuordnung on person.ID equals firma.PersonID where firma.firmaID == firmaID select new {person, firma} , "getPersonen firmaID"); else result = executeSQL( dbContext => from person in dbContext.List_Personen select new {person, NULL} , "getPersonen"); ... |
die zugehörige executeSQL sieht so aus:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| private IList<TableType> executeSQL<TableType>(Func<DBEntities, IQueryable<TableType>> sqlQuery, string errorMsg) { try { using( DBEntitiesdbContext = new DBEntities() ){ var result = sqlQuery(dbContext); return result.ToList(); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine("Error SQL-Entity " + errorMsg + ": " + ex.Message); return null; } } |
Dabei habe ich aber das Problem, dass ich zum einen nicht weiß wie ich der IList<> den neuen Typ {List_Personen, List_Firmen_Person_Zuordnung} zuordnen kann und zum anderen funktioniert das newperson, NULL) nicht.
Wie kann ich das Ganze jetzt am geschicktesten anstellen?
Vielen Dank für eure Hilfe
Määx