満足のいく答えを見つけられた気がしない、または適切な場所を探していないという質問があります。
私たちのシステムはもともと .NET 1.1 を使用して構築されました (ただし、現在はすべてのプロジェクトが 3.5 をサポートしています)。すべてのエンティティは、ストアド プロシージャと、標準の ExecuteReader、ExecutreNonQuery タイプ メソッドを持つ「SQLHelper」を使用してデータベースに永続化されます。
したがって、一般的に発生するのは、たとえば User と Role などのエンティティがあり、次のようなメソッドを使用してこれらのオブジェクトをデータベースに永続化する UserIO という別のクラスがあることです。
static UserIO.SaveUser(User user)
別の IO ファイルの理由は、IO をエンティティから分離しておくためですが、呼び出すだけの方が満足できるのではないでしょうか?:
User.Save()
たぶん私が間違っているかもしれませんが、これらの「IO」ファイルがあちこちに散らばっているのは正しくないと感じています。そのため、永続化のための他のオプションを検討することを考えており、どこから始めるのが最適なのか疑問に思いました。過去にデータセットを使用したことがありますが、特にそのパフォーマンスに関して、いくつかの複雑な経験がありました。LINQ が存在することは知っていますが、LINQ ではなく ADO.NET Entity Framework を使用する必要があると聞きましたが、Entity Framework は正しくないため、C# 4.0 を待つ必要があると他の人から言われました。その場合、C# 4.0 がもうすぐリリースされるので、"IO" ファイル アプローチを続けて、C# 4.0 が最終的にリリースされたときに Entity Framework から始めるべきです。または、部分クラスを利用するなど、使用できるよりエレガントなクラス構造はおそらくありますか?
私は、既存のデータ アクセスを完全に置き換えることを検討しているわけではありません。私が作成している新しいエンティティに関心があります。
この質問が少し一般的である場合は申し訳ありませんが、この種の考えを跳ね返す人はあまりいません。