2011-09-06 14 views
12

データベースからモデルをインポートするのに、ADO .NET Entity Frameworkを使用しています。私のDBのテーブルには、一杯の外部キーがあります。 FKDevice132610Entity Frameworkを使用したナビゲーションプロパティの意味のある名前

テーブルにモデルをインポートすると、各外部キーのナビゲーションプロパティが表示されますが、リンク先のテーブル名に基づいて名前がインポートされます。特定のテーブルに複数の外部キーがある場合は、末尾に数値が追加されます。

Ef model

この場合Devices1はParentDevicesとDevices2はChildDevicesあります。 Entity Frameworkがナビゲーションプロパティの意味のある名前をインポートするように、この情報を外部キーに入力する方法がありますか(たとえば、説明や名前を使用して)。

答えて

5

私が知っているように、現在、それを行う方法はありません。これは現在のデザイナーの仕事です。データベースからモデルを更新する名前を修正するためにこれらのプロパティの名前を変更すると、変更が上書きされることがあります。 http://entityframework.codeplex.com/workitem/125

+3

それは駄目です...愚かなEF :( – link664

+3

この場合はEFの失敗ではありませんデザイナーの失敗です - デザイナーなしでEFを使うことができます。 XMLマッピングを手動で記述します。 –

0

"modelBuilder.Conventions.Remove"で検索すると、解決策につながるかどうかわかりません。 私はもっと助けになることができればいいと思うが、私はEFを探検し始めている。同じIDに戻って複数のフィールドを参照していたときと同様の状況に陥ってしまいました...そして、私は回避策が何であったか覚えていません。

+0

モデルビルダーとデザイナーは共通点がありません。これらの2つは全く異なるシナリオで使用される機能です。 –

0

四年後...
EFチームはthis issueを解決するまでは、一つの可能​​な回避策は、外部ツールを使用して.edmxファイルを解析することであろう - ナビゲーションプロパティの命名は、この作業項目によって追跡されるの

改善 <NavigationProperty Name=で始まるすべてのテキストをより意味のあるナビゲーション名に置き換えます。
XMLは非常に解析しやすく、多重度、FK名などのプロパティを簡単に見つけることができます。

関連する問題