私には挑戦があります。もともとVB6で使用するように設計されたデータベースがあり、ほとんどの機能はストアドプロシージャにあります。古いアプリケーションがしばらく動作する必要があるため、ストアド プロシージャを変更することはできません。また、短時間でも変更できる独自のデータベースのコピーがないためです。
では、EF からストアド プロシージャを実行し、その結果を POCO の配列/コレクションに書き込むことを最善の方法で行うことは可能ですか?
データベースの最初のアプローチとインポートを試みましたが、ストアド プロシージャは列を返さないため、複雑な型を作成できないと EF は言います。これが機能するようにストアド プロシージャを変更する方法があることがわかりましたが、使用しているデータベースを変更することはできません。
別の課題は、結果の列の名前が「最終変更日」のようなもの、つまりスペースが含まれていることです。EF はこれらをどのようにマッピングしようとしますか? DataLastChanged または Data_last_changed になりますか? POCO を属性でマークして、それらがどのようにマッピングされているかを示す方法はありますか?
私が望んでいたのは次のようなものです
var resuls = efContext.ExecuteStoredProcedure<MyPOCOType>("spName",param1, param2, ...);
そして、EFに結果を型に一致させるのが最善です。そのようなものは存在しますか?ちなみに私たちはEF4を使用していますが、5も利用できると思います。