2011-02-05 12 views
3

最近、エンティティフレームワークを使用してデータを非正規化することができるとの意見が聞かれました。たとえば、ゲームジャンルのテーブルとゲームのテーブルがあるとします。エンティティフレームワークの逆正規化

あなたの初期EFモデルはgame.Genre.Nameを通じてゲームのジャンルの名前を取得することがあります。どうやら、ゲームのジャンル名にgame.GenreNameで行くことができるように、物事を再マッピングする方法があります。

私はこれの例を見つけることができません。私が知っている唯一のアプローチは、これをマッピングする抽象レイヤーを手動で追加することです(例えば、new GameAbstraction() {GenreName = gameEntity.Genre.Name })。

はEFが行うことができ、このものです、または正規の増加についてはそれをすべてである(例えばSportsGame Genre.Name == 'Sports' or ActionGame when Genre.Name = 'Action'を作成しますか)?

答えて

2

私はマッピングが正規化されたエンティティフレームワーク、およびその逆にテーブルを非正規化、成功のかなり妥当な程度でこれをやりました。私は、エンティティフレームワークを提供するデザイナーを使用して始まった、あなたが実際に新しいエンティティを構築するために図の周りのプロパティをドラッグ&ドロップすることができます...

しかし、私は意見のよ、このISNを行うためのUI +ツールというオートメーションや使いやすさという面ではまだまだです。いくつかのものは、あなたが期待している、またはそれを望む方法をマップしていません。多くの非正規化を行う予定がある場合は、デザイナーの背後にあるXMLの手作業で多くの編集を行うことになります。これは私の最近のプロジェクトでしばらくしていたことです。

+0

あなたと同意して、私はこの質問の将来にいます。コードクラス構造、EF、正規化されたデータベースは意図した通りにうまく収まらないようです。 – 1c1cle

0

はい、エンティティ分割と呼ばれます。 Here's a tutorial.

私は@Grahamに同意しますが、あなたはXML編集に不快なら、それを試してはいけません。