Problem mit Silverlight und WCF RIA-Service

Rugosh

Grünschnabel
Hi,

ich habe eine Silverlight App die sich die Daten per DomainDataSource aus einem DomainService holen soll. Die Query für diese Aufgabe habe ich von Hand geschrieben mit einem Parameter aber leider will das nicht.
Die Fehlermeldung ist folgende:
System.ServiceModel.DomainService.Client.DomainOperationException: Loadoperation failed for query 'GetUserById'. No parameterless constructor defined for this object.
Der XAML-Code:
Code:
<riaControls:DomainDataSource Name="ddsUser"
						QueryName="GetUserQuery"
						AutoLoad="True"
						d:DesignData="{d:DesignInstance gw:User, CreateList=True}"
						LoadedData="ddsUser_LoadedData"
						LoadSize="1">
    <riaControls:DomainDataSource.DomainContext>
        <gws:GameDomainContext />
    </riaControls:DomainDataSource.DomainContext>
    <riaControls:DomainDataSource.QueryParameters>
        <riaControls:Parameter x:Name="queryParamterId"
							ParameterName="id"
							Value="100000482229382" />
    </riaControls:DomainDataSource.QueryParameters>
</riaControls:DomainDataSource>
Die Methode im DomainService:
Code:
public IQueryable<User> GetUserById(long id) {
    ...
}
Ich hoffe mir kann da einer helfen.
Vielen Dank schon mal im voraus.
Gruß Rugosh
 
Zuletzt bearbeitet:
Wie sind denn der Konstruktor vom DomainService aus? Die Fehlermeldung ist doch ansich recht genau?!
 
Der Konstruktor vom Domainservice ist als private GameDomainService() {...} deklariert, aber ich verstehe jetzt nicht warum der hier in wichtig ist. Meines Wissens nach beziehen sich die riaControls:DomainDataSource.QueryParameters ja genau auf die Query "GetUserById(long id){...}".
Wobei ich auch echt nicht weiß welcher Konstruktor hier gemeint ist, ich kann mir nur vorstellen da die Query hier auch als Factorymethod arbeitet und deshalb als Konstruktor bezeichnet wird.
 
Hm das ist tatsächlich interessant. Was passiert denn wenn du mit GetUserById() überlädst .. kommste dann weiter? Dann wüssten wir ja schon mal was das Problem sein kann.

Oder müsstest du in GetUserById() den privat Konstruktor aufrufen? Hm.. Mit RIA Services hab ich das nicht so :) .. kommt mir jedenfalls etwas merkwürdig vor das alles.
 
Zuletzt bearbeitet:
Es wird immer komischer ich habe jetzt mal den QueryName auf GetUserQuery umgestellt, das ist das selbe nur ohne direkte Filterung und es kommt trotzdem die selbe Meldung was mich etwas verwundert, da auch die Query weiter als GetUserById bezeichnet wird.
 
Zurück