CSLAとEntityFrameworkは初めてです。12年前のWin32C++システムに代わる新しいCSLA/Silverlightアプリケーションを作成しています。古いシステムは、カスタムDCOMビジネスオブジェクトライブラリを使用し、ODBCを使用してSQLServerにアクセスします。新しいシステムが古いシステムをすぐに置き換えるわけではありません。今後数年間、同じデータベースに対して共存する必要があります。
最初はEFが最新で最高なので、EFが進むべき道だと思いました。小さなEFモデルと2つのCSLA編集可能ルートオブジェクトのみを作成した後(私のDBには800以上のテーブルがあるため、最終的には数百のオブジェクトがあります)、EFの使用について真剣に疑問を持っています。
現在のシステムでは、生成されたSQLを100%制御できるため、クエリの詳細なパフォーマンス調整を何度も行う必要があります。しかし、EFでは、舞台裏で多くのことが起こっているため、私はそのコントロールを失っているようです。http://toomanylayers.blogspot.com/2009/01/entity-framework-and-linq-to-sql.htmlのような記事は、EFの印象を助けません。
LINQ to EFのおかげで、人々はEFを好むようですが、私の基準はクライアントとサーバーの間で基準オブジェクトとして渡されるため、LINQがなくても同じように簡単にクエリを作成できるようです。WCF RIAには、実際のSQLに変換する前にサーバーに移動するクライアント側のLINQを実行できるクエリプロジェクション(またはそのようなもの)があることを理解しています。その場合、EFの利点を確認できますが、CSLAでは確認できません。 。
生のADO.NETを使用する場合、5年後の決定を後悔しますか?
最近、他の誰かがこの選択をしましたか、そしてあなたはどちらの方向に行きましたか?