2011-12-14 93 views
0

我想知道如何创建额外的“计算”属性在Silverlight客户端中公开给定的实体类型。我的解决方案结构如下(简体):来自Silverlight客户端中的实体的助手属性,共享代码

命名空间“数据访问”类库,保存我的EDMX 命名空间“网站”的Web应用程序托管Silverlight应用程序以及域名服务投射在EDMX (因此,它具有对“数据访问”项目的引用。) 命名空间“SLAPP”,Silverlight应用程序

我的一个实体是人(很简单):

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

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

我正在使用MVVM模式,所以我可以在ViewModel类上创建属性,但好像我必须多次复制该逻辑(任何需要FullName属性的ViewModel)。我试图在SL App中为Person对象创建一个名为FullName的扩展方法,但显然你不能绑定到扩展方法。

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

谢谢!

回答

0

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

[DataMember] 
public string FullName 
{ 
    get { return string.Format("{0} (1)", this.FirstName, this.LastName); } 
} 
+0

:) Doh!这很简单,谢谢! – SCEV 2011-12-15 16:56:39

相关问题