如果 Device 表具有复合主键,则您在 NotificationMessageDevice 表上需要相同的复合外键。sql如何找到没有完整主键的设备?另外,您应该使这些字段成为 NotificationMessageDevice 表主键的一部分。否则,您不能保证主键是唯一的:
public class NotificationMessageDevice
{
[Column(Order = 0), Key, ForeignKey("NotificationMessage")]
public int NotificationMessage_ID { get; set; }
[Column(Order = 1), Key, ForeignKey("Device")]
public int Device_ID { get; set; }
[Column(Order = 2), Key, ForeignKey("Device")]
public string Device_UDID { get; set; }
[Column(Order = 3), Key, ForeignKey("Device")]
public string Device_ApplicationKey { get; set; }
public virtual Device Device { get; set; }
public virtual NotificationMessage NotificationMessage { get; set; }
}