Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.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# 基于其他键和值表的Linq分组_C#_Mysql_Entity Framework_Linq - Fatal编程技术网

C# 基于其他键和值表的Linq分组

C# 基于其他键和值表的Linq分组,c#,mysql,entity-framework,linq,C#,Mysql,Entity Framework,Linq,我有两个实体ItemChange和PK: [Table("Sync_Changes")] public class ItemChange { public Guid AgentId { get; set; } public DateTime ChangeTime { get; set; } [Required] public string Descriminator { get; set; } [Key] [DatabaseGenerated

我有两个实体
ItemChange
PK

[Table("Sync_Changes")]
public class ItemChange
{
    public Guid AgentId { get; set; }

    public DateTime ChangeTime { get; set; }

    [Required]
    public string Descriminator { get; set; }

    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public Guid ID { get; set; }

    [NotMapped]
    public object Item { get; set; }


    public virtual ICollection<PK> PKs { get; set; }

    public virtual ChangeType State { get; set; }
}
我想根据PKs对
ItemsChange
进行分组,例如,我有两个ItemsChange,它们具有PKs[({Key=“Id”,Value=“1”},{Key=“GroupId”,Value=“2”})] 以及ChangeType[已创建、更新]

我想知道如何使用Linq或Mysql脚本实现这一点。 两个表的屏幕截图: 我希望基于pks对主题进行分组的更改。 PKs


您是否先使用代码?是,我首先使用代码。我没有遵循太多您拥有的changetypeone-to-many-->PK一个PK怎么可能有很多changetype坐在一个变更日志中PK表只存储由changetype更改的类型描述符对象的PK。我的意思是PK中的选择器是什么许多
changetype
s,我看到表
PK
中有一对一的changeId和change,AgentId和valuetype只有很少的值,,,这使得唯一的逻辑选择器列
value
对吗?
[Table("Sync_PKs")]
public class PK
{
    public PK(string key, object value)
    {
        Key = key;
        Value = value?.ToString();
        ValueType = value?.GetType().Name;
    }

    [Key]
    [Column(Order = 0)]
    [ForeignKey(nameof(Change))]
    public Guid ChangeId { get; set; }

    [Key]
    [Column(Order = 1)]
    public string Key { get; set; }

    [Required]
    public string Value { get; set; }

    [Required]
    public string ValueType { get; set; }

    public virtual ItemChange Change { get; set; 
 }