C# Silverlight avec Entity Framework - Changement de Type de Retour Sur générée automatiquement EntityQuery?

Arrière-plan

Actuellement, j'ai un C# Silverlight application d'entreprise qui utilise les Services RIA. L'application est hébergée dans ASP.NET à l'aide de la ADO.NET Entity Framework et une classe de service de domaine pour lire et écrire dans la base de données SQL Server.

Scénario

J'ai un serveur-côté de la méthode dans mon DomainServiceClass qui renvoie un IEnumerable liste d'objets.
Dans mon ApplicationName.Web.g.cs fichier j'ai un générée automatiquement la fonction de trop.
Dans mon Client Silverlight Application je veux être en mesure d'exécuter une boucle foreach sur le retour de la liste des objets.

DomainServiceClass Méthode:

    public IEnumerable<Image> GetJobImages(string jobGuid)
    {
        var query =
            (
             from j in Context.Job
             orderby (j.ShortCode)
             where j.JobID.Equals(jobGuid)
             join a in Context.Audit //.Distinct()
             on j.JobID equals a.Job.JobID
             join i in Context.Image
             on a.Image.JobID equals i.JobID

             select new Image
             {
                 HighResUrl = i.HighResUrl,
                 LowResUrl = i.LowResUrl,
                 UploadDate = i.UploadDate
                 }).AsEnumerable();

        return query;
    }

ApplicationName.Web.g.cs générée automatiquement la Fonction:

    ///<summary>
    ///Returns an EntityQuery for query operation 'GetJobImages'.
    ///</summary>
    public EntityQuery<Image> GetJobImagesQuery(string jobGuid)
    {
        Dictionary<string, object> parameters = new Dictionary<string, object>();
        parameters.Add("jobGuid", jobGuid);
        return base.CreateQuery<Image>("GetJobImages", parameters, false, true);
    }

Client Silverlight Code D'Invocation:

var context = dds.DomainContext as InmZenDomainContext;
                foreach(var item in context.GetJobImagesQuery(currentJob.JobID.ToString())
                {
                   item.etc.....//
                }

Problème

Malheureusement, Lorsque j'essaie de l'appeler cette méthode que ci-dessus, je reçois le message d'erreur:

"Impossible de convertir implicitement le type de Système.De Windows.Ria.Les données.EntityQuery du Système.Les Collections.IEnumerable'.

OU

'Ne contient pas une définition publique pour GetEnumerator'.

Après la lecture et de parler à d'autres, j'ai été informé que j'ai besoin de changer le type de retour sur le générés automatiquement à la Fonction (je crois).

Question

Personne ne sait d'une façon dont je peux changer le type de retour de IEnumerable sur ce type de EntityQuery?! - Ou d'un autre moyen de résoudre ce problème?

Tentative de la manière suivante:

    ///<summary>
    ///Returns an EntityQuery for query operation 'GetJobImages'.
    ///</summary>
    public IEnumerable<Image> GetJobImagesQuery(string jobGuid)
    {
        Dictionary<string, object> parameters = new Dictionary<string, object>();
        parameters.Add("jobGuid", jobGuid);
        return base.CreateQuery<Image>("GetJobImages", parameters, false, true);
    }

(Cela échoue, puisque la méthode est généré automatiquement, il vient de ressorts à ce qu'il utilisé pour être quand j'ai créer la solution.)

Aider grandement apprécié.

  • C'est agréable de voir des questions si bien formé...
InformationsquelleAutor Goober | 2009-09-28