chinabdx 2024-11-26 23:31 采纳率: 0%
浏览 12

#使用.net EF code查询数据时,应该查询出三条不一样的数据

#使用.net EF code查询数据时,应该查询出三条不一样的数据,但是结果却是第一次数据出现了三次,这是什么 原因

 public List<Invoice_Dtl> GetInvoiceDtls(string name)
 {
     List<Invoice_Dtl> Invoice_Dtls = new();
     using (var db = new ZlsDbContext(conectText))
     {
         Invoice_Dtls = db.Invoice_Dtl.Where(w => w.REFVBELN == name).ToList();
     }
     foreach(Invoice_Dtl invoice in Invoice_Dtls)
     {
         var str = JsonConvert.SerializeObject(invoice);
         Console.WriteLine(str);
     }
     return Invoice_Dtls;
 }

查询结果

[
  {
    "refvbeln": "A1000617",
    "maktx": "不征税自来水",
    "uomdesc": "吨",
    "mspec": "行政事业",
    "fkimg": 958,
    "netwr": 670.6,
    "taxrate": 0,
    "taxamt": 0,
    "disc": null,
    "disctax": null,
    "zklv": null,
    "taxcod": null,
    "unitpe": 0.7,
    "pemod": "1",
    "bmbbh": "12.0",
    "flbm": "1100301010000000000",
    "xsyhzc": "0",
    "yhzcnr": "",
    "lslbs": "2",
    "qyzbm": null
  },
  {
    "refvbeln": "A1000617",
    "maktx": "不征税自来水",
    "uomdesc": "吨",
    "mspec": "行政事业",
    "fkimg": 958,
    "netwr": 670.6,
    "taxrate": 0,
    "taxamt": 0,
    "disc": null,
    "disctax": null,
    "zklv": null,
    "taxcod": null,
    "unitpe": 0.7,
    "pemod": "1",
    "bmbbh": "12.0",
    "flbm": "1100301010000000000",
    "xsyhzc": "0",
    "yhzcnr": "",
    "lslbs": "2",
    "qyzbm": null
  },
  {
    "refvbeln": "A1000617",
    "maktx": "不征税自来水",
    "uomdesc": "吨",
    "mspec": "行政事业",
    "fkimg": 958,
    "netwr": 670.6,
    "taxrate": 0,
    "taxamt": 0,
    "disc": null,
    "disctax": null,
    "zklv": null,
    "taxcod": null,
    "unitpe": 0.7,
    "pemod": "1",
    "bmbbh": "12.0",
    "flbm": "1100301010000000000",
    "xsyhzc": "0",
    "yhzcnr": "",
    "lslbs": "2",
    "qyzbm": null
  }
]

SELECT * FROM dbo.INVOICE_DTL WHERE REFVBELN = 'A1000617'
实际上SQL语句查询结果

REFVBELN MAKTX UOMDESC MSPEC FKIMG NETWR TAXRATE TAXAMT
A1000617 不征税自来水 吨 行政事业 958.000 670.60 0.00 0.00
A1000617 水费 吨 行政事业 958.000 2874.00 3.00 83.71
A1000617 污水费 吨 行政事业 958.000 1341.20 0.00 0.00

  • 写回答

1条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从你提供的代码和查询结果来看,问题可能在于你的查询逻辑。你在查询时使用了 Where 条件 w => w.REFVBELN == name,这意味着你正在查询所有 REFVBELN 字段等于给定 name 值的记录。因此,即使数据库中有多个不同的记录具有相同的 REFVBELN 值,你的代码也会把它们都查询出来。

    根据你提供的实际SQL查询结果,有三个不同的记录具有相同的 REFVBELN 值 'A1000617',所以你的代码正确地查询出了这三个记录。这并不是错误,而是你查询的逻辑就是这样的。

    如果你希望查询出三条不同的数据,你可能需要更改你的查询逻辑。例如,如果你希望获取三个不同的 REFVBELN 值对应的数据,你可以使用 Take 方法来限制返回的记录数,或者更改你的查询逻辑以获取不同的记录。如果你需要进一步的帮助,请提供更多的上下文信息,以便我能更准确地理解你的需求并提供更具体的建议。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月26日