0

我正在使用 .NET RIA Services July Preview 在我的 Silverlight 客户端和我的服务器之间进行通信。在我的服务器上,我有一个托管 Silverlight 应用程序的 ASP.NET 项目。在 ASP.NET 应用程序中,我有一个带有名为 Hour 的表的 Linq-to-Sql 数据模型。我通过创建 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 的获取方法。由于 Linq 中的设计,我无法显式创建 Hour 实体的新实例,并通过新实体设置新属性的值:

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

如果我只是选择小时它工作得很好,但我需要设置 ProjectName 和 CustomerName 一些方式。

关于如何解决这个问题的任何想法?

4

1 回答 1

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 类中的属性,则可以使这变得更容易。

于 2009-10-22T22:20:35.600 回答