5

Entity FrameworkサンプルASP.NET/MVC 3.0 VS2010プロジェクトでの作業は初めてです。2つのストアドプロシージャを関数インポートとしてインポートし、その際に、それぞれに複雑なデータ型を作成しました。

私は次のc#コードを実行しようとしています:

public ComplexDataType RunStoredProc()
{
    var context = new DbEntities();
    int param1 = 370;
    int param2 = -1;
    string param3 = "Current";

    ComplexDataType result = new ComplexDataType;
    result = context.StoredProc(param1, param2, param3);
    return result;
}

そして、私はエラーを受け取っています:

Cannot implicitly convert data type 
    System.Data.Objects.ObjectResult(ComplexDataType) to 'ComplexDataType'

私は何が間違っているのですか?ストアドプロシージャの結果を複雑なデータ型に適切に格納するにはどうすればよいですか?

4

2 に答える 2

2

メソッドを使用DbSet.SqlQueryして、ストアド プロシージャから結果を取得できます。

int param1=12;
int param2=53;
var results=context.ComplexDataTypes.SqlQuery.
                       ("dbo.YourSPNameHere @p0 @p1", param1,param2).Single();

このようなコレクションで DbContext クラスが定義されているとします。

public DbSet<ComplexDataType> ComplexDataTypes { set;get;}

詳細については、こちらをご覧ください

于 2012-11-03T19:20:56.650 に答える
1

これを変更してみてください:

result = context.StoredProc(param1, param2, param3);

これに:

result = (ComplexDataType) context.StoredProc(param1, param2, param3);
于 2012-11-03T19:16:58.220 に答える