新しい async await 機能を、エンティティ モデルにインポートされたストアド プロシージャ/関数のインポートに適用したいのですが、EF6 アルファではまだできていません。
EF6 alpha2 (または 20211 のナイトリー ビルド) で、複合型のコレクションを返すエンティティ関数インポート (SQL ストアド プロシージャを呼び出す) で新しい非同期メソッドを呼び出すことはまだ可能ですか? 例えば
private async Task<IList<Company>> getInfo (string id)
{
using (CustomEntity context = new CustomEntity())
{
var query = await context.customStoredProcedure(id).ToListAsync();
// ".ToListAsync()" method not available on above line
// OR ALTERNATIVELY
var query = await (from c in context.customStoredProcedure(id)
select new Company
{
Ident = c.id,
Name = c.name,
Country = c.country,
Sector = c.sector,
etc. etc....
}).ToListAsync();
// ".ToListAsync()" method or any "...Async" methods also not available this way
return query;
}
}
「ToListAsync」、または新しい非同期変更メソッドのいずれも、上記のエンティティ ストアド プロシージャ/関数のインポートでは使用できないようです。標準の「ToList」または「AsNumerable」などのメソッドのみが利用可能です。
私はこれ(http://entityframework.codeplex.com/wikipage?title=Updating%20Applications%20to%20use%20EF6)に従って、コードがEF5ではなく新しいEF6 dllを参照していることを確認し、さまざまなものを使用して更新しましたステートメント。上記を除いて、すべてが正しくビルドされます。(.NET フレームワーク 4.5)
非同期メソッドを確認できるのは、DB からストアド プロシージャをインポートするだけでなく、テーブルもインポートする場合だけです。次に、上記のようにエンティティ コンテキスト (context.SomeTable) を介してそのテーブルを参照すると、いくつかの非同期メソッドが表示されます。インテリセンスに登場。
データを JSON として返す前に、複数のストアド プロシージャで新しい async await 機能を使い始めたいと思っていますが、これまでのところ機能させることができませんでした。
私は何か間違ったことをしていますか?エンティティのストアド プロシージャ/関数のインポートでは非同期機能を使用できませんか? アドバイスありがとうございます。