2009-08-31 17 views
1

データベースmyDBに基づいて、すべてのテーブルに対してedmxを生成し、プロジェクトをコンパイルします。次に、myDBにストアドプロシージャmyProcを作成します。次に、ノードストアドプロシージャの "Update Model from database"でモデルを更新し、myProcを追加します。それは結構です。次に、myProcに「関数のインポートを作成する」。それは結構です。それから私はプロジェクトをコンパイルしました。それは問題ありません。Entity Frameworkのストアドプロシージャの関数が見つかりません

myProcが文字列を返すため、このインポート関数の戻り値の型はスカラー(文字列)です。

次に、このストアドプロシージャにこの関数を使用したいと思いますが、その関数を見つけることができます。 一致する関数を見つけてコードで呼び出すにはどうすればよいですか?

答えて

1

EF 3.5では、エンティティを返す関数のみがObjectServicesに表示されます。

I.e.インポートは、関数を概念モデルに引き込みますが、コード生成には使用しません。

4.0でこの問題を解決しました。

その間は、eSQLを使用して関数を呼び出すことができます。

すなわち、この(擬似コード)のようなもの:

EntityConnection connection = ctx.Connection as EntityConnection; 
//Open the connection if necessary 
connection.Open() 
//Create the command 
EntityCommand command = new EntityCommand(); 
command.CommandText = "Function(@p1,@p2"); 
command.Parameters.Add(...); 
command.Parameters.Add(...); 
command.Connection = connection; 
string s = command.ExecuteScalar().ToString(); 

・ホープ、このことができます

アレックス

関連する問題