2011-12-09 9 views
2

動機:私のモデルのナビゲーションプロパティの欠如エンティティフレームワーク:ナビゲーションプロパティなしの外部キーのマップ

私はそれを修正する方法:私EF4.1 DbContextが間違った順序

理由でエンティティを保存している

私が外国を設定したいです私のDbContextの主要な関係。キャッチは、私のエンティティオブジェクトにはナビゲーションプロパティがないことです(私はそれを使ってWebサービスを生成し、アプリケーションにDTOオブジェクトを送ります)。

以下のクラスは例です。 MinorClassでは、私は、MajorClassIDが外部キーであることを知るようにコンテキストを構成したいと思っています。私が明示的に外部キーを定義する方法についてインターネット上で見つけた記事では、オブジェクトには存在しないナビゲーションプロパティを使用しています。

この関係をマップする方法はありますか?

public class MinorClass 
{ 
    public Guid ID {get;set:} 
    public Guid MajorClassID {get;set;} // foreign key 
    public string Name {get;set;} 
} 

public class MajorClass 
{ 
    public Guid ID {get;set;} 
    public string Name {get;set;} 
} 
+0

「MajorClassID」は単にスカラープロパティ( 'Name'など)とみなされませんか?ナビゲーションプロパティがなければ、基本的にORMの "O"側には全く関係がありません。 – Slauma

+0

この問題の背後にある問題は、関係を認識していないため、EFが間違った順序でアイテムを保存していることです。私が本当にやりたいことは、アイテムを保存するためにEFに指示することです。 –

答えて

5

ナビゲーションプロパティは外部キーはヘルパー(imho wrong helper)ですが、ナビゲーションプロパティは主要な構造です。 EFは、ナビゲーション特性によって定義される関係によるDBコマンドの順序付けを認識する。外部キーだけでリレーションを定義することはできません。リレーションの少なくとも片側にナビゲーションプロパティが必要です。

関連する問題