2009-10-22 3 views
0

J'utilise .NET RIA Services July Preview pour communiquer entre mon client Silverlight et mon serveur. Sur mon serveur, j'ai un projet ASP.NET hébergeant l'application Silverlight. Dans l'application ASP.NET, j'ai un Linq-to-Sql DataModel avec une table appelée Hour. J'ai étendu l'entité heure avec 3 propriétés en créant Hour.shared.cs:Nouvelle instance dans le service de domaine RIA

public partial class Hour 
{ 
    public string CustomerName { get; set; } 
    public string ProjectName { get; set; } 
    public string FullProjectName { get { return this.CustomerName + " - " + this.ProjectName; } } 
} 

Dans mon DomainService J'ai un get-méthode appelée getHours. En raison de la conception dans LINQ, je ne peux pas explicitement créer une nouvelle instance de l'entité Heure et par la nouvelle entité définir les valeurs de mes nouvelles propriétés:

var query = from hours in this.Context.Hours 
      select new Hour() 
      { 
       HourID = hours.HourID, 
       ProjectName = "Hello World" 
      }; 

Si je seulement certaines heures, il fonctionne très bien mais je dois Définissez le nom du projet et le nom du client d'une certaine manière.

Des idées pour contourner ce problème?

Répondre

2

Essayer encore ma réponse, la dernière fois que j'ai gelé sur moi.

Probablement la meilleure façon de le faire serait en utilisant une fonction:

public Hour PopulateHour(Hour hour) 
{ 
    hour.CompanyName = "xyz"; 
    hour.ProjectName = "123"; 
    return hour; 
} 

Ensuite, vous pouvez utiliser dans votre requête LINQ:

var query = from hour in this.Context.Hours 
      select PopulateHour(hour); 

Une chose qui rendrait cela plus facile serait si vous avez déjà eu CompanyId et ProjectId en tant que propriétés dans la classe Hour.

+0

Cela a fonctionné - merci beaucoup! – thomasmartinsen

Questions connexes