RIA:如何获取功能,而不是数据

时间:2010-03-28 21:18:35

标签: .net ria

在服务器端,我有以下课程:

public class Customer
{
    [Key]
    public int Id { get; set; }

    public string FirstName { get; set; }

    public string SecondName { get; set; }

    public string FullName { get { return string.Concat(FirstName, " ", SecondName); } }
}

问题是计算每个字段并将其传输到客户端(到Silvelight应用程序),例如'FullName'属性:

    [DataMember()]
    [Editable(false)]
    [ReadOnly(true)]
    public string FullName
    {
        get
        {
            return this._fullName;
        }
        set
        {
            if ((this._fullName != value))
            {
                this.ValidateProperty("FullName", value);
                this.OnFullNameChanging(value);
                this._fullName = value;
                this.RaisePropertyChanged("FullName");
                this.OnFullNameChanged();
            }
        }
    }

而不是数据传输(即流量消耗,在某些情况下会带来显着的开销)。我想在客户端进行计算(silverlight aplpication)。

如果没有手动复制属性实现,这是否可行?

谢谢。

1 个答案:

答案 0 :(得分:0)

将计算出的属性作为分部类移动到另一个文件,并使用“共享”命名对话(MyFileName.Shared.cs)。示例:

//Employee.cs
public partial class Employee
{
   [Key]
    public string EmployeeId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

//Employee.Shared.cs
public partial class Employee
{
    public string LastNameFirst
    {
      get { return string.Format("{0}, {1}", LastName, FirstName); }
    }
}

共享文件中的代码将显示在客户端。