通常、私は Entity Framowrk を ORM ツールとして使用します。そして、「関数のインポート」機能とコード ジェネレーターが本当に気に入っています。
しかし、非常に分厚く非常に真面目な本を読んだら、SP だけを呼び出すために EF を使用することはお勧めできません。
著者が少しだけ忘れていたこと:このような DB 呼び出し戦略に最適なツールは何ですか?
EF の学習に時間を費やし、それがうまくいった場合は、EF を使い続けてください。あるいは、ほとんどのプロジェクトでは、Dapper、Massive、PetaPoco などのマイクロ ORM で十分です。たとえば、Dapper は @ StackExchange で使用するために開発されたと思いますが、現在はオープン ソースになっています。
BLToolkit を確認してください。EF に比べて学習曲線が非常に短いです。
この Blt 拡張機能もチェックしてください -> bltoolkit-storedprocedures2csharp-t4/ T4 テンプレートを使用して、ストアド プロシージャの関数を生成します。
通常のBltoolkit
using(var db = new DbManager())
{
return db
.SetSpCommand(
"Person_SaveWithRelations",
db.Parameter("@Name", name),
db.Parameter("@Email", email),
db.Parameter("@Birth", birth),
db.Parameter("@ExternalID", exId),
)
.ExecuteObject<Person>();
}
エクステンション付き
using (var db = new DataManager())
{
return db
.Person
.SaveWithRelations(
name,
email,
birth,
exId
)
.ExecuteObject<Person>();
}
(免責事項:私は多くのSPを持っていないため、自分で拡張機能を使用していません)
BLToolkit を使用してみてください - これはオープン ソースであり、オブジェクトをストアド プロシージャのパラメータにマップし、ストアド プロシージャの出力をオブジェクトに問題なくマップできます。
Microsoft Enterprise Libraryの Data Access ブロックが最良の選択だと思います。いくつかのプロジェクトで、ストア プロシージャのみを使用して外部データベースにクエリを実行するために使用しました。最新バージョンは、構成が非常に簡単で使いやすいです。また、余分な機能で過負荷になることもなく、必要なものだけを提供します。シンプルで素早い構成と使用法が必要な場合は、これを使用してください。これが私のアドバイスです。