代码之家  ›  专栏  ›  技术社区  ›  thomasmartinsen

RIA域服务中的新实例

  •  0
  • thomasmartinsen  · 技术社区  · 15 年前

    我正在使用.NET RIA Services July Preview在我的Silverlight客户端和服务器之间进行通信。在我的服务器上,有一个ASP.NET项目托管Silverlight应用程序。在ASP.NET应用程序中,我有一个LINQ to SQL数据模型和一个名为hour的表。我通过创建hour.shared.cs扩展了具有3个属性的hour实体:

    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中进行了设计,因此我无法显式创建小时实体的新实例,并且通过新实体设置新属性的值:

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

    如果我只选择小时,它工作得很好,但我需要设置项目名称和客户名称。

    有什么关于如何解决这个问题的想法吗?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Bryant    15 年前

    再次尝试我的回答,最后一次,我被冻住了。

    最简单的方法可能是使用一个函数:

    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作为属性。

    推荐文章