Вопрос

Я использую .NET RIA Services July Preview для связи между моим клиентом Silverlight и моим сервером. На моем сервере у меня есть проект ASP.NET, на котором размещено приложение Silverlight. В приложении ASP.NET у меня есть модель данных Linq-to-Sql с таблицей под названием Hour. Я расширил объект Hour тремя свойствами, создав 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; } }
}

В моей службе домена у меня есть метод get с именем GetHours. Из-за дизайна в Linq я не могу явно создать новый экземпляр сущности Hour и через новую сущность установить значения моих новых свойств:

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

Если я просто выберу часы, то все будет работать нормально, но мне нужно как-то установить ProjectName и CustomerName.

Есть идеи о том, как обойти это?

Это было полезно?

Решение

Повторяю мой ответ, в прошлый раз ТАК замерз на мне.

Вероятно, самый простой способ сделать это - использовать функцию:

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

Затем вы можете использовать это в своем запросе linq:

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

Одна вещь, которая облегчила бы это, была бы, если бы у вас уже были свойства CompanyId и ProjectId в классе Hour.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top