以下のスクリーンショットは、私のモデルのエンティティ(URL)です。ParentIdフィールドは、自己参照FK(Url.Idを指す)です。スクリーンショットの下部にこのナビゲーションが表示されます。
EDMXを生成するSQLとDBでは、自己参照FKはFK_Urls_Parentと呼ばれます。
-- Creating foreign key on [ParentId] in table 'Urls'
ALTER TABLE [Urls]
ADD CONSTRAINT [FK_Urls_Parent]
FOREIGN KEY ([ParentId])
REFERENCES [Urls]
([Id])
ON DELETE NO ACTION ON UPDATE NO ACTION;
私の質問は次のとおりです。
- EFがその1つのFKからUrls1とUrl1を生成したのはなぜですか?Url1は、「FromRole」Urls1である0または1のプロパティです。Urls1は'FromRole'Urls'ToRole'Urls1です。EFは、URLテーブルとまったく同じナビゲーションプロパティを作成しているようです。なぜこれを行うのでしょうか。また、必要なナビゲーションプロパティであるUrls1を生成するために何かを行うことができますか?
- さて、それほど重要ではありませんが、FK名またはDB内の何かに基づいてNavigationプロパティの名前を制御できますか?私はそれが「Url1」と名付けられるのが嫌いです。「親」の方がいいのですが、モデルを再生成するたびにデザイナーで手動で変更する必要はありません。
ありがとう。