2009-10-22 89 views
0

我使用.NET RIA Services July Preview在我的Silverlight客戶端和我的服務器之間進行通信。在我的服務器上,我有一個託管Silverlight應用程序的ASP.NET項目。在ASP.NET應用程序中,我有一個名爲Hour的表的Linq-to-Sql DataModel。我已經通過創建Hour.shared.cs有3個屬性擴展小時實體: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我有一個get-方法稱爲調用getHours。由於在LINQ的設計,我不能明確創建小時實體的新實例,並通過新的實體,設定新的屬性值:

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

如果我只是選擇時間它工作得很好,但我需要設置ProjectName和CustomerName的一些方法。

有關如何解決此問題的任何想法?

回答

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); 

一件事,這將使這更容易將如果在Hour類中已經有CompanyId和ProjectId作爲屬性。

+0

它的工作 - 非常感謝你! – thomasmartinsen 2009-10-22 23:20:02