2017-02-08 8 views
6

私の質問はthis 1に似ていますが、この場合には、私はがchilderenを参照親にコレクションプロパティを持っているEFコードファーストは、ナビゲーションプロパティのない、しかし、親コレクションプロパティを持つ外部キー

public class Parent 
{ 
    public int Id { get; set; } 
    public virtual ICollection<Child> Children { get; set; } 
} 

public class Child 
{ 
    public int Id { get; set; } 
    public int ParentId { get; set; } 
} 

引用した質問の場合と同様に、私はChildParentのプロパティを必要としたくありません。

したがって、関係を定義するために次の構文をどのように変更する必要がありますか?

modelBuilder.Entity<Child>() 
    .HasRequired(c => c.Parent) <---- no such property "Parent" 
    .WithMany(p => p.Children) 
    .HasForeignKey(c => c.ParentId); 

答えて

6

あなたはパラメータなしでWithRequiredメソッドを使用することができます。何の逆ナビゲーションプロパティがない場合は

modelBuilder.Entity<Parent>() 
    .HasMany(p => p.Children) 
    .WithRequired() 
    .HasForeignKey(c => c.ParentId); 

With部分が空のままにすることができます。

+0

ああ - 私は、親の終わりに関連付けを定義することができなかったことを認識していませんでした。これは実際に動作します(EFは、作成、削除などの関係を維持します)。 – BCA

+0

はい、1対多のリレーションシップがDBに作成されるため、すべてのCRUD操作を実行するとリレーションシップを維持します – octavioccl

関連する問題