Hab da gerade auch nur einen allgemeinen Hinweis.
Es erscheint mir widersinnig wenn man versucht eine dezidierte Datenschicht aufzubauen, die man sogar in eine eigene Assembly auslagert, dieser eine Oberfläche zu geben die EF Verhalten exportiert. Heißt wo der Verwender wissen muss wie sich diese Schicht intern verhält, aka EF und z.B. dessen Lazy Loading, und auch noch anonyme Typen als object exportiert worüber der Verwender dann auch internes Wissen haben muss das die Oberfläche der Schicht nicht so einfach hergibt.
Da fand ich dein Codebeispiel im ersten Beitrag schon besser. Dort sehe ich nur das Problem das du versucht hast den anonymen Typ den die Abfrage liefert auf einen konkreten zu mappen. Ich hätte vermutet das das so nicht mal compiliert.
Wenn du mich fragst würde ich wieder zur Methodik des ersten Beitrags zurückkehren. Deiner Datenschicht wieder ein entsprechend eindeutiges Interface geben, das nur kontextfreie Interfaces, Listentypen und konkrete Datentypen transportiert und somit ohne internes Wissen über die Datenschicht beim Nutzer der Datenschicht auskommt.
Die Abfrage des erste Beitrags müsste dabei nur eher so aussehen.
C#-Quelltext
1: 2:
| var categories = (from c in db.Categories select new Category() { Id = c.Id, Name = c.Name }); |