如何将一个表记录与另一个表中存储的条件进行比较?

时间:2019-04-22 21:24:32

标签: c# linq

我的个人记录正在更改。我正在记录已更改的FieldName和新的Value(用于FieldName)。即,Jane的记录已更新,她的CityId从1更改为2。我还接受了她的所有其他记录(州,电子邮件等)

我需要根据“参数”表和“参数标准”表中满足的参数,在单独的表(WorkQueue)中创建新记录。

例如:

人员表

  • PersonId:1
  • 名称:Jane
  • 城市ID:2 (此字段已更新)
  • StateId:CA
  • 颜色:蓝色

参数表

  • ParameterID:2
  • ChangedField:CityId

ParameterCriteria表

条件1

  • ParameterCriteriaId:3
  • ParameterId:2
  • FieldId:颜色
  • FieldValue:蓝色

条件2

  • ParameterCriteriaId:4
  • ParameterId:2
  • FieldId:颜色
  • FieldValue:绿色

条件3

  • ParameterCriteriaId:5
  • ParameterId:2
  • FieldId:StateId
  • FieldValue:CA

在上面的示例中,我需要对照“参数”表检查Jane。如果更改的字段匹配(在本例中为CityId),那么我需要检查ParameterCriteria表以查看她的记录必须满足哪些条件。

在这种情况下,仅在以下情况下才应创建Jane的WorkQueue记录:

  • 颜色=蓝色 OR 绿色和
  • StateId = CA

由于她的记录与此匹配,因此将创建该记录。简的记录具有更改的字段CityId,并且她的颜色=蓝色,StateId =CA。假设我们只是将Jane的 PersonId (在本例中为1)添加到新的WorkQueue表中。

    //I've gotten as far as identifying the changedFields for each person. So I have a Dictionary<personId, List<changedFieldInfo>>.

    // My Dictionary looks like:

    //* PersonId: 1 (Jane)
    //* List<changedFieldInfo>: FieldName (string), Value (string), IsChangedField (bool)

您如何最好地处理此问题?谢谢。

0 个答案:

没有答案