我有 2 个类,一个是另一个的集合属性,如下所示。
public class NotificationMessage
{
public int ID { get; set; }
public string Message { get; set; }
public virtual ICollection<Device> Devices { get; set; }
}
public class Device
{
public int ID { get; set; }
public string Token { get; set; }
public virtual ICollection<NotificationMessage> NotificationMessages { get; set; }
}
public class NotificationMessageDevice
{
[Column(Order = 0), Key, ForeignKey("NotificationMessage")]
public int NotificationMessageID { get; set; }
[Column(Order = 1), Key, ForeignKey("Device")]
public int DeviceID { get; set; }
public virtual Device Device { get; set; }
public virtual NotificationMessage NotificationMessage { get; set; }
}
当您像上面那样创建关系时,实体框架非常聪明,可以通过创建 NotificationMessageDevices 在数据库上创建多对多关系。
问题就出现在这里。现在我想将 CreateDate 添加到表 'NotificationMessageDevices' 中。我所做的是,我以实体框架在现有数据库中创建表“NotificationMessageDevices”的方式创建了一个名为“NotificationMessageDevice”的新类。我添加了新属性并调用了 Update-Verbose。第一个例外是关于缺少 ID 属性,它希望我添加 public int ID {get;set;} 但是当我添加它时,它意识到 ID 属性是索引属性,因此我需要删除该表中的所有数据。
这种情况在实体框架上没有数据丢失的解决方法是什么:)