0

EntityFramework で WCF DataServices を使用する ac# アプリケーションがあります。

すべてが正常に機能しているようですが、ストアド プロシージャを使用してカスタム挿入を実装する必要があります。

オンラインでヘルプを見つけようとしましたが、何もないようです。

私は自分のデータサービスを持っています:

[MessageInspectorBehavior]
    public class Security : DataService<VisitAwareContext>
    {
        // This method is called only once to initialize service-wide policies.
        public static void InitializeService(DataServiceConfiguration config)
        {
            // TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
            // Examples:
            config.SetEntitySetAccessRule("SecurityUsers", EntitySetRights.All);
            config.SetEntitySetAccessRule("Sessions", EntitySetRights.All);
            // config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All);
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
            // Other configuration here...
            config.UseVerboseErrors = true; // TODO - Remove for production?
        }

[WebGet]
        public bool CustomInsert(string customField1, string customField2)
        {
            // here I need to call my stored procedure and pass the fields....

            return true;
        }
}

それを行う方法はありますか?または、誰かが私に解決策を勧めることができますか?

WCF DataServices などの 1 つのサーバー/クライアント データ テクノロジだけを使用し続けることはできないことはわかっています。これらのシナリオに別の WCF ADO.NET アプローチを追加することもできますが、当面は EF + WCF Data Services を使用し続けたいと思います。

どうもありがとう。

4

2 に答える 2

1

WCF Data Services の " Service Operations " でOData アクションを使用します。MSDN の記事で説明されているように、データ サービス クラス内のメソッドで WCF 属性を使用できます (属性によって与えられる制約を尊重します)。WebInvoke

メソッド内で、 (基本DataServiceクラスCurrentDataSourceから継承された) データ サービスのプロパティを使用して、Entity Framework DbContextを取得できます。

そこから、Entity Framework を使用してストアド プロシージャを呼び出す方法についてStack Overflow を検索できます(もちろん、詳細なマニュアルをお読みください)。

于 2013-10-02T17:17:33.390 に答える
0

[WebGet] 属性の代わりに、[WebInvoke] を使用します。そうすれば、クライアントから GET の代わりに POST を使用してサービス操作を呼び出すことができるはずです。それとは別に、あなたが持っているものは正しいようです。

ありがとうプラティック

于 2013-10-01T18:36:24.497 に答える