2009-10-22 73 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