2009-10-22 3 views
0

Я использую .NET RIA Services July Preview для связи между моим клиентом Silverlight и моим сервером. На моем сервере у меня есть проект ASP.NET, на котором размещается приложение Silverlight. В приложении ASP.NET у меня есть DataModel Linq-to-Sql с таблицей Hour. Я продлил Hour объект с 3-мя свойствами путем создания Hour.shared.cs:Новый экземпляр службы домена RIA

public partial class Hour 
{ 
    public string CustomerName { get; set; } 
    public string ProjectName { get; set; } 
    public string FullProjectName { get { return this.CustomerName + " - " + this.ProjectName; } } 
} 

В моей DomainService У меня есть ПОЛУЧИТЬ-метод, называемый GetHours. Благодаря конструкции в Linq, я не могу явно создать новый экземпляр Hour объекта и с помощью нового объекта установить значение моих новых свойств:

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

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

Любые идеи о том, как обойти это?

ответ

2

Повторяя мой ответ снова, последний раз, когда я замерз.

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

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.

+0

Это сработало - спасибо вам большое! – thomasmartinsen

Смежные вопросы