我试图弄清楚如何为给定的实体类型创建在 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 的新手,这是我的第一个“真正的”应用程序,所以也许我只是错过了一些非常简单的东西......我希望我是。任何帮助都会很棒。
谢谢!