まあ、バージョン1の私の経験は面白かったです。私はPOCOを使いたかったのですが、それをサポートしていませんでした。周りを読んだ後、私はこれをしたマイクロソフト社の団体からいくつかのコードを見つけました。
コードを生成するのがちょっと面倒ですが、プロセスのこの部分全体がそれほど悪くはありませんでした。
私が遭遇した本当の不快な部分は、N階層開発のために、並行処理チェックが組み込まれていないことでした。問題を見た後、特にユーザーの介入のためにバージョン管理をクライアントに戻したい場合は、これを自分で管理する必要があります。
LINQクエリのINキーワードは2番目の厄介で絶対的に愚かなものがありませんでした。サポートされていないため、回避する必要があります。私は解決策を見つけましたが、抜本的な見直しを迅速に修正した他のコードを導入するのは本当に混乱でした。
私はEF 4.0(2.0)を使用しますか?はい、絶対に、どうしてですか?実際にステージ2で私はこれを使用します。 POCOをサポートしているように見えますが、私の並行処理モデルは問題なく(まるでデルタコピーのように)動きます。これまでのところすべてうまくいきました。私はMicrosoftのBig人たちが彼らのやり方の誤りを見て、うまくいくソリューションを提供したことを、この時間を祈っています。
エンティティ開発とコンセプトモデル全体を最初に購入した場合は、完全なMicrosoftソリューションを提供する唯一の方法です。 M言語で行われていることがアイデアを食い止め、モデリング全体をデータベースに戻すかもしれませんが。
エンティティのものを購入しないと、エンタープライズライブラリに強く行きます。確かなコード基盤とデータベース中心のパラダイム上に構築されたたびに動作する実績のあるテクノロジーです。もし私がこのストアドプロシージャがミツバチの膝であり、彼らがテーブルにもたらすものと同じだと思うなら、私はこの道を行くでしょう。
あなたの気持ちが本当にエキゾチックで、ちょっと気晴らしていると感じたら、私はCouchDBのようなNO-SQLのアプローチに行きます。しかし、これには慣れています。その気が変わって本当に間違っていると感じる。しかし、状況は非常に早い時間に開発され、ソリューションは予想以上に堅牢で速いようです。私はノーマライゼーションにあなたの大きな場合は、このタイプのソリューションを持っていないだろうし、それはNO-SQLのアプローチに適用することができると思う。モデル全体を頭で動かす必要があり、アプリケーションは、適用される技術によって推進される方法でモデル化される必要があります。
私はCouchDBの方法が少し汚いと非常に間違って見つける。しかし、それはそれを使うために非常に多くの説得力のある理由があり、私はそれがすべてのプログラマーの精神に浸透すると考えており、今後数年間で主流になるだろう。
新しいバージョン4でも、Nティア環境にはあまり考えられていませんでしたが、私の最大の悩みはまだエンティティ全体のものでした。ボイラープレートコードは、エンドユーザー(開発者)が行う必要がある多くのボイラープレートコードを備えた2層ソリューションであり、堅牢で信頼性の高いNティアの仕方で機能するようになったという気持ちがまだあります。
+1偉大な質問ウィレム、私はEF v1を待っていて、v2でそれを解くのを待っています。 – Kev
私はEF v1がフィーチャー不完全なフレームワークであると述べています。 = D –
正直言って、これはフレームワークなのです。通常、この単語は、何かを構築するための基本的な基礎を記述するために使用されます。私はその目で見ると、それは本当に悪くも不完全でもないと思います。それをたくさん使って、はい、それはNHibernateのようにより健康的であることがうれしいですが、それは再びフレームワークです。出発点。 –