Hallo liebe Community,
bin da gestern auf ein Problem gestossen, bei dem ich nicht so richtig weiterkomme.
Also, ich habe eine Klasse Entity1 (ist vom Entity Framework generiert). Dazu habe ich eine partielle Klasse Entity1, die das Interface IEntity implementiert. IEntity definiert im Moment nur, welche Properties in der Entität enthalten sein müssen. Um nun die Datensätze, die von der Datenbank geladen werden, filtern zu können, wollte ich folgende Prozedur implementieren:
C#-Quelltext
1: 2: 3: 4: 5:
| public IEnumerable<IEntity> GetFilteredList(Expression<Func<IEntity, bool>> filter) { foreach (IEntity item in context.Entity1.Where(filter)) yield return item; } |
Problem ist aber, dass in der foreach als filter eine
Expression<Func<Entity1, bool>> erwartet wird.
Ich schaffe es nichtmal mit einem Cast:
C#-Quelltext
1: 2:
| foreach (IEntity item in ent.Entity1.Cast<IEntity>().AsQueryable().Where(filter)) yield return item; |
Da bekomme ich dann folgende Exception:
Quelltext
1:
| 'LINQ to Entities' unterstützt nur die Umwandlung primitiver Entity Data Model-Typen. |
Wie schaffe ich es nun, die Expression zu verwenden? Bzw. wie kann ich diese zu einer
Expression<Func<Entity1, bool>> konvertieren? Wäre für jede Hilfe dankbar!
LG, Marko