我有以下類表映射:EF Codefirst - 用流利的API
public class User
{
public Guid Id { get; set; }
public string Name { get; set; }
public bool Active { get; set; }
public string UserName { get; set; }
//keys
public ICollection<Conversation> Conversations { get; set; }
}
public class Conversation
{
public Guid ID { get; set; }
public ICollection<Message> Messages { get; set; }
public User RecipientUser { get; set; }
public User SenderUser { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime ModifiedDate { get; set; }
}
我使用EntityTypeConfiguration用流利的API,它是:
public class UserConfig : EntityTypeConfiguration<User>
{
public UserConfig()
{
HasMany(x => x.Conversations).WithRequired(x => x.RecipientUser);
}
}
public class ConversationConfig : EntityTypeConfiguration<Conversation>
{
public ConversationConfig()
{
HasKey(x => x.ID);
HasRequired(x => x.RecipientUser).WithMany(x => x.Conversations);
}
}
這是一個簡單的聊天應用程序。如果我現在是用戶而不是我是消息的發送者。收件人用戶是我正在向我發送信息的用戶。 請建議我如何配置我的EntityTypeConfiguration。我遇到如下錯誤:違反了多重性約束。關係「DataAcessLayer.Conversation_RecipientUser」的角色'Conversation_RecipientUser_Target'具有多重性1或0..1。
對不起,但仍然有錯誤。 –
我在我的機器上試過了你的代碼,我剛剛刪除了HasRequired(x => x.RecipientUser).WithMany(x => x.Conversations)部分,因爲這在你的UserConfig,HasMany(x => x .Conversations).WithRequired(x => x.RecipientUser)。你只應該聲明一次。 –
嗨@Patrick請檢查我的答案。謝謝。 –