我正在使用.NET RIA Services July Preview在我的Silverlight客户端和我的服务器之间进行通信。在我的服务器上,我有一个托管Silverlight应用程序的ASP.NET项目。在ASP.NET应用程序中,我有一个带有名为Hour的表的Linq-to-Sql DataModel。我通过创建Hour.shared.cs扩展了Hour实体的3个属性:
public partial class Hour
{
public string CustomerName { get; set; }
public string ProjectName { get; set; }
public string FullProjectName { get { return this.CustomerName + " - " + this.ProjectName; } }
}
在我的域服务中,我有一个名为GetHours的get方法。由于Linq中的设计,我无法显式创建Hour实体的新实例,并通过新实体设置我的新属性的值:
var query = from hours in this.Context.Hours
select new Hour()
{
HourID = hours.HourID,
ProjectName = "Hello World"
};
如果我只选择几小时就可以正常工作,但我需要设置ProjectName和CustomerName。
关于如何解决这个问题的任何想法?
答案 0 :(得分: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类中的属性,那么将使这更容易的一件事就是。