Linq 过滤多对多查询

时间:2021-01-18 19:48:11

标签: c# linq

我正在尝试过滤查询,但结果不正确。我正在过滤 PromotionMajorChains,这是一个很多关系,但结果是给了我 2 个促销主要链,而它应该只返回 1 个“水果和蔬菜城”。两个促销主链都链接到同一个促销 ID。

促销表

enter image description here

PromotionMajorChain 表

enter image description here

代码

Future<String> excelToJson() async {
var file = await FilePicker.getFilePath(
    type: FileType.custom, allowedExtensions: ['xlsx', 'csv', 'xls']);
var bytes = File(file).readAsBytesSync();
var excel = Excel.decodeBytes(bytes);
int i = 0;
List<dynamic> keys = new List<dynamic>();
List<Map<String, dynamic>> json = new List<Map<String, dynamic>>();
for (var table in excel.tables.keys) {
  for (var row in excel.tables[table].rows) {
    if (i == 0) {
      keys = row;
      i++;
    } else {
      Map<String, dynamic> temp = Map<String, dynamic>();
      int j = 0;
      String tk = '';
      for (var key in keys) {
        tk = "\u201C" + key + "\u201D";
        temp[tk] = (row[j].runtimeType==String)?"\u201C" + row[j].toString() + "\u201D":row[j];
        j++;
      }
      json.add(temp);
    }
  }
}
print(json.length);
String fullJson = json.toString().substring(1, json.toString().length - 1);
return fullJson;}

0 个答案:

没有答案