モデルをバックエンドの実際のDBにリンクせずにEntity Framework 4.3を使用できますか?DBのないEntity Framework?
私はVSデザイナーでデータベースの概念モデルを構築し、次にさまざまなバックエンドデータベース(恐ろしいレガシーシステム)へのフェッチ、挿入、および更新を手動で処理したいと考えています。マップされていないテーブルを持っていないということに気づいているEFなしでこれを行うことができる必要があります。私はこれがやりたい非常に奇妙なことであることを認識しています...
私は、これらのレガシーシステムから適切に設計されたデータモデルと.NET環境に移行する必要がありますが、開発中に旧システムとの機能と下位互換性を維持する必要があります。次に、私が構築しているEFモデルと一致する1つのDBに古いデータ(約6種類のデータベースからのもの)をインポートできる段階に到達します。理論的には、ハッキングされたEFモデルから新しいデータ構造に適合する適切なEFモデルに切り替えることができます。
これは実行可能ですか? LINQを実際にデータベースに向けることなく、EFインターフェイスを使用することは可能ですか?
私は、生成されたDbContextをオーバーライドし、古いシステムを照会するIQueryableプロパティを公開することによって、レガシーシステムにクエリを実行できました。私の大きな戦いは、実際にデータを更新することです。
EFでエンティティの変更を追跡することはできますが、実際には変更を保存することはできません。コンテキスト上でSaveChanges()メソッドをオーバーライドして、さまざまなレガシーテーブルに手動で挿入できるようにする必要があります。
私はこの問題を抱えています。
UDPATE 2012年9月4日:EDMXファイルデザイナを使用してデータモデルを構築することを選択し、T4を使用してコードを生成しました。これにより私のニーズに合わせてマッピングコードを手動で書くことができます。また、従来のデータ移行を比較的簡単に実行することもできます。
もちろん、何でも可能ですが、私はこのアプローチが実現可能ではないと確信しています。バックエンドデータベースを実装し、そこからレガシーシステム間のデータ相互運用を処理したくない理由はありますか?それはあなたが行こうとしている場所を得るための道具です。 –