Новый экземпляр в RIA Domain Service
-
05-07-2019 - |
Вопрос
Я использую .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.