0

特定のエンティティ タイプの Silverlight クライアントで公開される追加の「計算された」プロパティを作成する方法を見つけようとしています。私のソリューション構造は次のとおりです(簡略化):

Silverlight アプリケーションと EDMX を介してプロジェクトするドメイン サービスをホストする EDMX 名前空間「Web」Web アプリを保持する名前空間「データ アクセス」、クラス Lib (したがって、「データ アクセス」プロジェクトへの参照があります)。名前空間「SLApp」、Silverlight アプリ

私のエンティティの1つは 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クラスでプロパティを作成するだけで済みますが、そのロジックを何度も複製する必要があるようです(FullNameプロパティが必要なViewModel)。FullName という SL アプリの Person オブジェクトの拡張メソッドを作成しようとしましたが、拡張メソッドにバインドできないようです。

私は Silverlight を初めて使用しますが、これは私の最初の「実際の」アプリケーションであるため、非常に単純なものが欠けているだけかもしれません...そうであることを願っています。どんな助けでも素晴らしいでしょう。

ありがとうございました!

4

1 に答える 1

0

計算されたプロパティに属性を追加しまし[DataMember]たか?

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