0

MVC WebAPI を使用して Silverlight アプリを起動しています。POCO オブジェクトは、MVC と Silverlight の間で共有されます。すべての POCO は .Net クラス ライブラリにあり、すべての POCO をリンクとして追加して Silverlight クラス ライブラリを作成し、コードを共有できるようにしました。残念ながら、Silverlight クラス ライブラリは EntityFramework.dll を参照できず、したがって [ForeignKey] などの属性をコンパイルできないため、データ注釈で問題が発生します。

私はすべての注釈を次のようにラップすることになりました:

#if !SILVERLIGHT
        [ForeignKey("SecurityGroupID")]
#endif
        public virtual SecurityGroup SecurityGroup { get; set; }

#if !SILVERLIGHT がすべての注釈をラップしないようにする方法を考え出した人はいますか? ([列]、[テーブル]、[ForeignKey] など)。

私が考えた解決策の 1 つは、子名前空間 (MyProject.FakeAttributes) に一致するコンストラクターを持つ空の属性を作成し、その名前空間を Silverlight バージョンにインポートすることです。そのソリューションに問題がある人はいますか?

4

1 に答える 1

1

Silverlight でエンティティを使用しないことをお勧めします。オブジェクト グラフの遅延読み込みやサイクルなどの理由で、エンティティは WCF とうまく連携しないことがよくあります。自分で dtos を作成してください。

dtos を使用しない場合。#ifs偽の属性を作成する前に、を使用します。

于 2012-08-16T17:06:26.553 に答える