Pregunta

Estoy usando .NET RIA Services July Preview para comunicarme entre mi cliente de Silverlight y mi servidor. En mi servidor tengo un proyecto ASP.NET que hospeda la aplicación Silverlight. En la aplicación ASP.NET tengo un modelo de datos Linq-to-Sql con una tabla llamada Hora. He extendido la entidad de la Hora con 3 propiedades 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; } }
}

En mi servicio de dominio tengo un método de obtención llamado GetHours. Debido al diseño en Linq, no puedo crear explícitamente una nueva instancia de la entidad Hora y, a través de la nueva entidad, establecer los valores de mis nuevas propiedades:

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

Si simplemente selecciono las horas, funciona bien, pero necesito configurar ProjectName y CustomerName de alguna manera.

¿Alguna idea sobre cómo solucionar esto?

¿Fue útil?

Solución

Intentando mi respuesta de nuevo, la última vez que me congelé.

Probablemente, la forma más sencilla de hacerlo sería utilizar una función:

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

Luego puedes usar esto en tu consulta de linq:

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

Una cosa que haría esto más fácil sería si ya tuvieras CompanyId y ProjectId como propiedades en la clase Hour.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top