C# 复合密钥上的EF-FKs
我有两个实体彼此需要FK:C# 复合密钥上的EF-FKs,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我有两个实体彼此需要FK: public class MessagesGroup { [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public long GroupId { get; set; } public string Title { get; set; } public DateTime Created { get; set; } public int? LastMess
public class MessagesGroup
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long GroupId { get; set; }
public string Title { get; set; }
public DateTime Created { get; set; }
public int? LastMessageId { get; set; }
[Required]
[ForeignKey("GroupId,LastMessageId")]
public virtual Messages Message { get; set; }
}
public class Messages
{
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long GroupId { get; set; }
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int MessagesId { get; set; }
public int UserId { get; set; }
[StringLength(2000)]
public string Text { get; set; }
public DateTime Date { get; set; }
[StringLength(255)]
public string AttachmentUrl { get; set; }
[Required]
[ForeignKey("GroupId")]
public virtual MessagesGroup MessageGroup { get; set; }
[Required]
[ForeignKey("GroupId,UserId")]
public virtual MessagesGroupUsers MessagesGroupUsers { get; set; }
}
如何在两个实体上获得FK,因为现在我得到了错误
无法确定类型“MDC.Repository.Model.Messages”和“MDC.Repository.Model.MessagesGroup”之间关联的主体端。必须使用关系fluent API或数据注释显式配置此关联的主要端。我尝试了其他解决方案,但没有任何帮助,只出现了新的错误
编辑
我试过那种解决办法
public class MessagesGroup
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long GroupId { get; set; }
public int? LastMessageId { get; set; }
public virtual Messages Message { get; set; }
}
public class Messages
{
[Key]
[Column(Order = 0)]
[ForeignKey("MessageGroup")]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long GroupId { get; set; }
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int MessagesId { get; set; }
public int UserId { get; set; }
[Required]
public virtual MessagesGroup MessageGroup { get; set; }
[Required]
[ForeignKey("GroupId,UserId")]
public virtual MessagesGroupUsers MessagesGroupUsers { get; set; }
}
现在我明白了
多重性在关系“Messages\u MessageGroup”中的角色“Messages\u MessageGroup\u Source”中无效。因为依赖角色属性不是键属性,所以依赖角色的多重性上限必须为“*”
通过查看这条新消息,我感觉他无法映射到msgGroupId,但我不明白为什么。这是ef核心的可能副本吗?@VidmantasBlazevicius不,不是,常规ef可能是ef核心的副本吗?@VidmantasBlazevicius不,不是,常规ef