假设我有两个实体,User
和Notification
:
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 :(得分:2)
您无法在关系中添加“状态”等额外字段。你需要有一个虚拟表。
我认为你的问题与以下答案相同Many to Many mapping with extra fields in Fluent API
可能会有所帮助。
用户
通知
UserNotification(虚拟表格)您放置状态字段