Rob のやり方に従って、Linq to SQL ウィザードによって生成されたクラスと、POCO であるこれらのクラスのコピーを用意しました。私のリポジトリでは、Linq to SQL モデルではなく、これらの POCO を返します。
return from c in DataContext.Customer c.ID == ID select new MyPocoModels.Customer { ID = c.ID, Name = c.Name }
これの利点は、POCO モデルを簡単にインスタンス化できるため、コードがよりテストしやすくなることだと理解しています。
私は現在、Linq から SQL、さらには Entity Framework に移行しており、EF ブックの半分ほど進んでいます。EF エンティティではなく、リポジトリから POCO を返すことで失うメリットがたくさんあるようです。
私はまだ単体テストを実際に受け入れていないので、これらの余分な POCO を作成し、それらにデータを入力するためのコードを書くのに多くの時間を無駄にしているように感じます。オブジェクトを追跡できないため、EF の多くの利点を失うことになります。
このすべての ORM/Repository について、比較的初心者にアドバイスがある人はいますか?
アンソニー