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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top