2016-04-05 14 views
0

次のビジネスクラスをコードファーストモデルに追加しました。私はそれのために、移行を作成しようとするとEntity Framework内の結合ツールテーブル用の複合主キーの作成

public class NoteTag{ 

    [Key] 
    public virtual Note Note { get; set; } 
    [Key] 
    public virtual Tag Tag { get; set; } 
} 


public class Note { 

protected Note() 
    { 
    Tags = new List<NoteTag>()  
    } 
    [Key] 
    public int Id { get; set; } 
    public virtual List<NoteTag> Tags { get; set; } 
} 


public class Tag { 

protected Tag() 
    { 
     Notes= new List<NoteTag>()   
    } 
    [Key] 
    public int Id { get; set; } 
    public virtual List<NoteTag> Notes { get; set; } 
} 

私はエラー私は私のデータベース構造からコードをリバースエンジニアリング

答えて

0

EntityType 'NoteTag' has no key defined. Define the key for this EntityType. 

ノートとタグのクラスを取得し、それは私のように見えますジョイナクラスを宣言すべきではない

using System; using System.Data.Entity; using System.ComponentModel.DataAnnotations.Schema; using System.Linq;

public partial class Model2 : DbContext 
{ 
    public Model2() 
     : base("name=Model2") 
    { 
    } 

    public virtual DbSet<Note> Notes { get; set; } 
    public virtual DbSet<Tag> Tags { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<Note>() 
      .HasMany(e => e.Tags) 
      .WithMany(e => e.Notes) 
      .Map(m => m.ToTable("NoteTags")); 
    } 
} 
関連する問題