0

WCF データ サービスを使用して外部に公開されている Entity Framework モデルにいくつかの計算フィールドを追加しようとしています。

次のコードを追加しようとしました (注: 実際のメソッドには、get/set メソッドにビジネス ロジックがあります)。

public partial class myClass
{
    [DataMember]
    public string Foo { get; set; }
}

ただし、フィールドはまだ OData によって返されません。OData は .edmx のみを参照しているようです。

現在、これを解決するために考えられる唯一のオプションは、エンティティ フレームワーク モデルを実装し、返された行ごとに関数を呼び出してサーバー側で値を計算するCLR functionSQL を見て、ストアド プロシージャを使用してエンティティを更新することです。 view. しかし、事実上単純な (.NET では、SQL ではそうではない) 計算フィールドについては、これらすべてを実行する必要はありません。

このフィールドを計算するために、他にどのようなオプションがありますか?

4

1 に答える 1

0

プロバイダーが EF の場合、WCF DS は csdl のみを参照します。

したがって、いくつかのオプションがあります

  • EF プロバイダーを使用し続け、何らかの方法で列を CSDL に追加します。私が見たのは、列をDBに追加することですが、それらを空のままにしてEFクラスで計算します(たとえば)。しかし、これを行う他の方法もあると確信しています。

  • カスタム プロバイダーを使用すると、すべてを完全に制御できますが、EF ベースのプロジェクションでこれを実現するための作業量は膨大です。したがって、他の問題に遭遇しない限り、私はその道には進みません。

于 2012-04-18T12:11:25.813 に答える