LINQ to SQLから(Fluent)NHibernateに切り替えたばかりの人は、ここにいくつか気づいたことがあります。
LINQ にSQL参加-サブクラスの同等の操作を行う方法を見つけ出すためにそう時間がかかりました。多くの変更の後、私はどこかでそれが不可能であると読んでいます。すべての列が同じテーブルにある場合にのみ、継承をマップできます。これは、いくつかの列がある場合は素晴らしいですが、私のケースではトンがあり、サブクラスは他のサブクラスの親です。なぜORMのためにそれらをすべて1つのテーブルに入れなければならないのですか?経験から
NHibernateのは(小、迅速なプロジェクトのために、時にはあまり)堅牢されていると、私が生成する可能性があるため、小規模なプロジェクトを通じて、それに精通しているが、私はそれがあまりにも多くのかもしれないと感じた SQLにLINQ のルートを行ってきましたDBMLファイルがあり、数分で終了します。
流行NHibernate。両方の世界のベストを奪います(私の場合)。私は自分の望むやり方をマップして、自分のデータベースを自分の望むやり方にして、ドメインやデータモデルで妥協する必要はありません。また1つの単語:Automapping ...ケーキのアイシング。私はかつて私は限界を発見し、 SQLにLINQ でいくつかの道路のバンプを打つが、流暢NHibernateは、この選択が容易になり、私はI'LLを考えていない他のORMで行かなければならなかっただろう
仕事をより良くするものがなければ、それを残してください。
ロブ・スコット氏のように、どのようにドメイン=>データ・モデルを抽象化しているのですか?そしてあなたはドメインやデータベースから始めていますか?関係はどれほど複雑ですか?あなたが継承を全く持っているなら、私はより豊かなORMフレームワークに行き、自分自身を悲しみから救うと言うでしょう。
Fluent NHibernateには、私が今までに見つけた最高のドキュメントがいくつかありますが、それほどサポート、メモ、ブログ、リソースがあります。私は24時間以内に立ち上げて走っていました。
ああ、NHibernateの新機能がNHibernate in Actionの本を拾い上げると、ホイールにグリースを塗るのに役立ちますが、そのフレームワークにも多くの助けがあります。
ツールが機能していないことを示す最も良い指標は、ツールを作業する必要があるときです... LINQ 〜 SQLホワイトペーパーを読み込み、あらゆる種類の狂気をカスタマイズしていて、私がテーブルとドメインを変更するように誘惑されたとき、私はFluentに渦を吹かせるように言いました。
あなたに幸運を。長い応答のために申し訳ありません;これは過去5日かかりましたので、私はまだまだ追いついていると思います:-)
mvcテンプレートを含む亜音速3もあります。 –
IQueryableオブジェクトを返さないと、Linq-to-SQLは流暢なAPIになりますか? – Nick