0

我试图弄清楚如何为给定的实体类型创建在 Silverlight 客户端中公开的附加“计算”属性。我的解决方案结构如下(简化):

命名空间“数据访问”,类 Lib,包含我的 EDMX 命名空间“Web”Web 应用程序,该应用程序托管 silverlight 应用程序以及在 EDMX 上投影的域服务(因此它引用了“数据访问”项目。)命名空间“SLApp”,Silverlight 应用程序

我的实体之一是人(非常简化):

public partial class Person
{
   public string FirstName {get; set;}
   public string LastName {get; set;}
}

我想要一个名为 FullName 的“助手”/“计算”属性,它只是将名字和姓氏放在一起。在过去,这很容易;创建我自己的公共部分类 Person 类并添加属性/逻辑,然后我可以将其用作普通属性。但是 RIA 域服务似乎没有公开该属性,所以我不能在客户端上使用它。如果 EDMX 在 Web 应用程序中,我可以使用 .Shared.cs 文件并将其包含在 SL 应用程序中(我猜),但我不希望我的 EDMX 在 Web 应用程序中(感觉很脏 :))

我正在使用 MVVM 模式,因此我可以在 ViewModel 类上创建属性,但似乎我必须多次复制该逻辑(我需要 FullName 属性的任何 ViewModel)。我尝试在名为 FullName 的 SL 应用程序中为 Person 对象创建一个扩展方法,但显然您无法绑定到扩展方法。

我是 Silverlight 的新手,这是我的第一个“真正的”应用程序,所以也许我只是错过了一些非常简单的东西......我希望我是。任何帮助都会很棒。

谢谢!

4

1 回答 1

0

您是否已将[DataMember]Attribute 添加到计算的属性中?

[DataMember]
public string FullName
{
    get { return string.Format("{0} (1)", this.FirstName, this.LastName); }
}
于 2011-12-15T01:39:47.913 回答