如何在服务器中的模型上有方法或属性也在客户端生成?

时间:2010-08-05 20:45:49

标签: silverlight entity-framework wcf-ria-services

我已经使用RIA服务,实体框架4和Silverlight 4建立了一个应用程序。它是按照MSDN上规定的标准方式设置的:Walkthrough: Creating a RIA Services Solution

我已经针对驻留在服务器上的一个实体对象编写了一个新方法(或属性);我希望这个方法(或属性)也可以在客户端上生成(自动)。即。

  • 我的数据库中有一个名为Customer的表,它有两个字段:FirstName和LastName
  • (ASP.NET项目 - 服务器端)EF创建了一个名为Protocol的相应部分类,它有两个属性:FirstName和LastName
  • (ASP.NET项目 - 服务器端)在另一个文件中,我使用部分类机制来定义一个方法(或属性),以便在字符串中返回FirstName和LastName,例如
    • public function ReturnFullName()as String ...
    • 公共属性FullName()as String ...

有没有办法在客户端(我的Silverlight应用程序)生成ReturnFullName()和FullName()?或者我是否也必须在客户端实现方法/属性?

2 个答案:

答案 0 :(得分:0)

客户端未生成服务器端域对象中的方法。 (其中一个原因是显然您可以在Silverlight中不可用的这些方法中使用.NET Framework功能。)只使用类变量复制属性及其签名。

该问题的解决方案是为您的Customer类提供部分.cs文件,您可以在其中定义这些方法并在Silverlight项目中创建指向该文件的链接。当然,您只能在using语句中使用Silverlight中也可用的库。

答案 1 :(得分:0)

创建一个.shared.cs或.shared.vb文件,其中包含该实体的部分类。

例如:

Partial Public Class Persoon
    Public Function GetFullName() As String
        Return Me.Voornaam & " " & Me.Naam
    End Function
End Class


public partial class Persoon
{
    public string GetFullName()
    {
        return this.Voornaam + " " + this.Naam;
    }
}

然后它将在客户端生成。