我有一个消息模型,它有两个像这样的用户的外键
[Table("Messages")]
public class Message
{
public Message()
{
MessageReaders = new HashSet<MessageReader>();
}
[Key]
public int MessageId { get; set; }
public int? SenderUserId { get; set; }
public int? ReceiverUserID { get; set; }
public virtual SystemUser Sender { get; set; }
public virtual SystemUser Reciever { get; set; }
}
认为发送方和接收方都是外键,两者都是空的。如何在EF核心2中进行流畅的映射。
我试过这个但是没有用:
modelBuilder.Entity<Message>(entity => {
entity.HasOne(d => d.Sender)
.WithMany(p => p.Messages)
.HasForeignKey(d => d.SenderUserId);
entity.HasOne(d => d.Reciever)
.WithMany(p => p.Messages)
.HasForeignKey(d => d.ReceiverUserID);
});
错误是:
System.InvalidOperationException:&#39;无法创建关系 在SystemUser.Messages&#39;之间和&#39; Message.Reciever&#39;,因为那里 已经是SystemUser.Messages&#39;之间的关系。和 &#39; Message.Sender&#39 ;.导航属性只能参与 单身关系。&#39;