EFEDMを介してマップされたストアドプロシージャを実行するこのコードがあります。
meTest<MCTEntities, ObjectResult<retrieveMedia_Result>>(u => u.retrieveMedia(campaign_id: 1), ConnectionResolver.MCT_DB_Connection);
方法:
public static TValue meTest<U, TValue>(Func<U, TValue> func, String connection)
where U : ObjectContext, new()
{
using (U entitiesContext = (U)Activator.CreateInstance(typeof(U), new[] { connection }))
{
return func(entitiesContext);
}
}
問題は、retrieveMediaが返さObjectResult<retrieveMedia_Result>
れ、これが遅延実行で実行されるため、エラーが発生することです。Calling 'Read' when the data reader is closed is not a valid operation.
これで、ToList()またはToArray()を呼び出すことができることがわかりましたが、すぐに実行するように強制する他の方法はありますか?
キャストObjectResult<retrieveMedia_Result>
することList<retrieveMedia_Result>
が正しいことかどうかはわかりません。