Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 复合密钥上的EF-FKs_C#_Asp.net_Entity Framework - Fatal编程技术网

C# 复合密钥上的EF-FKs

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

我有两个实体彼此需要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? 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