2013-12-19 2 views
2

Предположим, у меня есть две сущности, User и Notification:Как добавить дополнительный столбец в третью таблицу в Entity Framework?

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

спасибо, возможно, это решит мою проблему –

Смежные вопросы