我正在尝试弄清楚如何为给定的实体类型创建在Silverlight客户端中公开的其他“计算”属性。我的解决方案结构如下(简化):
包含我的EDMX的命名空间“数据访问”,类Lib 名称空间“Web”Web应用程序托管silverlight应用程序以及通过EDMX投影的域服务(因此它引用了“数据访问”项目。) 名称空间“SLApp”,Silverlight应用程序
我的一个实体是Person(非常简化):
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类上创建Property,但似乎我必须多次复制该逻辑(任何我需要FullName属性的ViewModel)。我尝试在SL App中为Person对象创建一个名为FullName的扩展方法,但显然你无法绑定到扩展方法。
我是Silverlight的新手这是我的第一个“真正的”应用程序,所以也许我只是错过了一些非常简单的东西...我希望我是。任何帮助都会很棒。
谢谢!
答案 0 :(得分:0)
您是否在计算出的属性中添加了[DataMember]
属性?
[DataMember]
public string FullName
{
get { return string.Format("{0} (1)", this.FirstName, this.LastName); }
}