2016-10-28 7 views
2

EF6データベースを最初に使用しているときにストアドプロシージャを実行しようとすると、自動生成コンテキストでは必要なメソッドが追加されますが、戻り値の型はObjectResultとして設定されます。たとえば、次の定義:EF 6データベースの最初のストアドプロシージャ

public virtual ObjectResult<USP_GetItemDetails_Result> USP_GetItemDetails(int? itemNbr, int? siteNbr) 

はの戻り値の型を持っている:

return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<USP_GetItemDetails_Result>("USP_GetItemDetails", itemNbr, siteNbr); 

はただ具体的なクラスとしてではなくたObjectResultとして結果を送信することよりも、この結果を具現化するためにとにかくはありますか?私のスタックの次のレイヤーは、Entity Frameworkを認識しません。

+0

また、関連するストアドプロシージャの戻り値の型が、DBエンティティと一致しない複合型(連結されたサーバーの一部のローカル情報とデータの合併) – Sykomaniac

+0

結果をマッピングしない理由あなた自身を新しいクラスに入れますか? –

+0

私はそれを行うことができましたが、Web APIを介して結果をdtoとして返すと、後で再びマッピングすることになります。 – Sykomaniac

答えて

1

フードの下にあるObjectResultは、IEnumerableです。単純なtoListは、IEnumerableを次のレイヤーに返すことができることを意味します。

関連する問題