Benutzer mit den meisten Antworten
How to return a gereric list for IQuerable

Frage
-
Hi,
I am brand new to EF. So as a starting point I used a Lab from VS2010 TrainingsKit. It is the first lab called WinForms.
I decided to have a WCF service, because I wanted to have a n-tier layer application, to which I can attacht a WPF Application in furture- So far so good.
In my EDM I basically have three tables Roles ==> UserRoles ==> User. In a datagrid I want to display all uses and their roles, not in a hierarchical view, but a flat view. It want to end up in something like this: ID_User, FirstNmae, LastName, LoginName, ID_Role and Role(human readable explanation).
I get hold of Role and User-Entities, and I can display their contents. But as explained above this is not my target.
Whithin my repository I defined folowing method:
public IQueryable GetUserRechte()
{
using (DataContext)
{
var getUserRechte = from u in DataContext.MCUsers join ur in DataContext.UserRechte
on u.ID_MCUser equals ur.ID_MCUser
select new { u.ID_MCUser, u.FirstName , u.Name , u.LoginName, u.Remark, ur.ID_Rolle
};
return getUserRechte;
}
Using Linqpad this linq-query returns just what I need and want.
When I try to access the result set, I either get annoying error messages or my business / data- layer is not invoced. As my result is of type IQuerable I suggest to transform it into a gereric list object. How can I cast my resutlset into a generic list for consumption?
I'd appreciate your help.
A_SqlDeveloper
Antworten
-
Hallo,
na, da bist jetzt doch im deutschen Forum gelandet...
Direkt ein IQueryable geht über WCF nicht, da hier konkrete Daten transportiert werden müssen.
IQueryable dient als Marker-Schnittstelle für eine Umsetzung durch einen konkreten Provider,
siehe http://stackoverflow.com/questions/1578778/using-iqueryable-with-linqDer direkteste Weg ginge über die WCF Data Services
In einem anderen (Irrläufer) Posting hatte ich vor kurzem erst einige Links dazu gegeben:
Mehrere gleichzeitige Datenverbindungen mit LinQ (das Phone kannst Du dabei getrost ignorieren).Alternativ kann man POCOs, am besten Self Tracking Entities, verwenden, siehe z. B.:
Exemplarische Vorgehensweise: Serialisieren von Entitäten mit Selbstnachverfolgung (Entity Framework)Empfehlenswert für den Einstieg wäre Julie Lerman's: Programming Entity Framework, Second Edition (O'Reilly Media)
Einiges findest Du auch Online:
http://www.devproconnections.com/article/net-framework2/using-entity-framework-pocos-in-wcf-services
und als Download einige nützliche Templates.Gruß Elmar
- Als Antwort markiert Thorsten DörflerEditor Dienstag, 3. Mai 2011 08:06
Alle Antworten
-
Hallo,
na, da bist jetzt doch im deutschen Forum gelandet...
Direkt ein IQueryable geht über WCF nicht, da hier konkrete Daten transportiert werden müssen.
IQueryable dient als Marker-Schnittstelle für eine Umsetzung durch einen konkreten Provider,
siehe http://stackoverflow.com/questions/1578778/using-iqueryable-with-linqDer direkteste Weg ginge über die WCF Data Services
In einem anderen (Irrläufer) Posting hatte ich vor kurzem erst einige Links dazu gegeben:
Mehrere gleichzeitige Datenverbindungen mit LinQ (das Phone kannst Du dabei getrost ignorieren).Alternativ kann man POCOs, am besten Self Tracking Entities, verwenden, siehe z. B.:
Exemplarische Vorgehensweise: Serialisieren von Entitäten mit Selbstnachverfolgung (Entity Framework)Empfehlenswert für den Einstieg wäre Julie Lerman's: Programming Entity Framework, Second Edition (O'Reilly Media)
Einiges findest Du auch Online:
http://www.devproconnections.com/article/net-framework2/using-entity-framework-pocos-in-wcf-services
und als Download einige nützliche Templates.Gruß Elmar
- Als Antwort markiert Thorsten DörflerEditor Dienstag, 3. Mai 2011 08:06