Nuova istanza in RIA Domain Service
-
05-07-2019 - |
Domanda
Sto usando .NET RIA Services July Preview per comunicare tra il mio client Silverlight e il mio server. Sul mio server ho un progetto ASP.NET che ospita l'applicazione Silverlight. Nell'applicazione ASP.NET ho un DataModel Linq-to-Sql con una tabella chiamata Hour. Ho esteso l'entità Hour con 3 proprietà creando Hour.shared.cs:
public partial class Hour
{
public string CustomerName { get; set; }
public string ProjectName { get; set; }
public string FullProjectName { get { return this.CustomerName + " - " + this.ProjectName; } }
}
Nel mio domainservice ho un metodo get chiamato GetHours. A causa del design in Linq, non posso creare esplicitamente una nuova istanza dell'entità Hour e tramite la nuova entità impostare i valori delle mie nuove proprietà:
var query = from hours in this.Context.Hours
select new Hour()
{
HourID = hours.HourID,
ProjectName = "Hello World"
};
Se seleziono solo le ore funziona bene ma devo impostare ProjectName e CustomerName in qualche modo.
Qualche idea su come aggirare questo?
Soluzione
Sto provando di nuovo la mia risposta, l'ultima volta che SO si è bloccato su di me.
Probabilmente il modo più semplice per farlo sarebbe usare una funzione:
public Hour PopulateHour(Hour hour)
{
hour.CompanyName = "xyz";
hour.ProjectName = "123";
return hour;
}
Quindi puoi usarlo nella tua query linq:
var query = from hour in this.Context.Hours
select PopulateHour(hour);
Una cosa che renderebbe questo più semplice sarebbe se tu avessi già CompanyId e ProjectId come proprietà nella classe Hour.