2013-12-19 33 views
2

假設我有兩個實體,UserNotification如何添加額外的列到第三個實體框架表中?

public class User 
{ 
[Key] 
    public int UserId { get; set; } 

// other public properties 


// Navigation Properties 

    public virtual ICollection<Notification> Notifications { get; set; } 
} 



public class Notification 
{ 

    [Key] 
    public int NotificationId { get; set; } 

// other public properties 

    // Navigation Properties 

    public virtual ICollection<User> Users { get; set; } 

} 

我簡單地增加many-to-many關係是這樣的:

modelBuilder.Entity<User>() 
      .HasMany(u => u.Notifications) 
      .WithMany(t => t.Users) 
      .Map(m => 
      { 
       m.ToTable("UserNotifications"); 
       m.MapLeftKey("UserId"); 
       m.MapRightKey("NotificationId"); 
      }); 

但是,如果我想額外列添加到該表中會發生什麼哪名字是'狀態'?我以爲我可以使用AddColumn,但是我怎樣才能訪問此列並獲得它的價值?我怎樣才能做到這一點?我想檢查用戶是否閱讀通知。任何建議都會很好,謝謝。

+0

不知道我理解你爲什麼不能只是添加列和地圖呢? ... –

+0

我不太瞭解流利的API和映射,我只是混淆了我如何從我的上下文中訪問該列 –

回答

2

您無法在關係中添加額外字段,如「狀態」。你需要有一個虛擬桌子。
我認爲你的問題與以下回答相同
Many to Many mapping with extra fields in Fluent API 可能會有所幫助。

用戶
通知
UserNotification(虛擬表),你把你的狀態

+0

謝謝,可能會解決我的問題 –

相關問題