0

EntityFramework Code First 5を使用していて、データモデルがあります。

例:

[Table("Contract"]]
public class Contract
{
    ...

    [ForeignKey("SomeKey")]
    //[Include]
    public virtual BusinessPartner BP
    {
    ...
    }
}

データモデルは現在WPFクライアントで使用されており、うまく機能します。現在、Silverlightクライアントを作成しており、同じモデルを使用しています。データベースにアクセスするために、私はRIAサービスを使用しています。[Include]のようなRIAアノテーションを追加する必要があるまでは、Silverlightでうまく機能しました(上記の例でコメントされています)。

問題は、データモデルで.NET 4クライアントプロファイルを使用しており、それを変更できないことです。ただし、RIAアノテーションはSystem.ServiceModel.DomainServices.Server名前空間にあり、.NET4または.NET4.5が必要です。

したがって、RIA [Include]アノテーションを追加すると、モデルはコンパイルされなくなります。

WPFとSilverlightクライアントで同じデータモデルを使用できるように、.NET 4クライアントプロファイルでRIAアノテーション属性を使用する方法はありますか?

XMLファイルでこれらのRIA属性を定義する方法について読んだことがありますが、例が見つかりません。

ありがとうございました

4

2 に答える 2

1

私は自分の問題の解決策を見つけました。FluentMetadata、WCF RIAサービス用のFluentAPIを使用して、別のアセンブリで注釈を定義できるようにしました。それは私が必要としていたものでした。FluentMetadataの詳細については、次のリンクを参照してください。

于 2012-06-22T12:18:13.803 に答える
0

WPF で機能し、Silverlight で正常に機能する場合は、RIA の IncludeAttribute を模倣してコンパイルする WPF アプリケーション用の独自のダミー属性を作成するだけです。これを実現するには、RIA にあるのと同じ名前空間に属性を配置する必要があります。

namespace System.ServiceModel.DomainServices.Server 
{
    // Just put this into your WPF app :)
    [AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field, AllowMultiple = true, Inherited = true)]
    public class IncludeAttribute : Attribute {}
}
于 2012-06-21T15:49:45.763 に答える