c# - 此代码的等效 sql 查询是什么?
问题描述
这段代码给出的结果不准确,我需要更改它,但我不明白整个代码在做什么。
我阅读了有关 defaultifempty 及其实现的信息。我阅读了文档,但找不到问题的答案。
var records = from entity in _db.InventoryDetails
from am in _db.AccountMeters
.Where(am => entity.SerialNumber == (am.SerialNumber ?? am.RemoteId.ToString())).DefaultIfEmpty()
from ac in _db.Accounts
.Where(ac => ac.AccountId == am.AccountId).DefaultIfEmpty()
from i in _db.Inventories
.Where(idd => idd.ProjectId == projectid)
.Where(idd => idd.InventoryId == entity.InventoryId)
from u in _db.Users
.Where(e => e.Id == (entity.InstallerId ?? entity.PrevInstaller)).DefaultIfEmpty()
它不会给出错误,只是查询给出了错误的结果。如果我能找到代码的 sql 等效项,那么我可以找出他正在尝试做什么,然后找出业务需求并重新编码。
解决方案
ToString()
您可以通过调用方法获取将由您的代码生成的 SQL 代码:
var records = from entity in _db.InventoryDetails
// the other code is omitted for the brevity
var sqlCode = records.ToString(); // here your generated SQL code
推荐阅读
- php - Mysql 和 PHP 中的巴士座位预订
- r - 将非特定长度字符串拆分为列
- php - Laravel/Eloquent 关系不一致
- python - 获取 Dialogflow 意图并查询 Firestore
- azure - Azure IoT 将文件上传到 Blob
- c++ - 注入的类名作为类型
- java - Android,Firebase - 尝试检索多个子节点时,数据库仅将单个子节点作为字符串返回
- python - 将不规则的 x,y 点插入到具有各自值的矩形网格中
- recursion - 如何在 F# 中程序不聚焦(在后台)时继续记录击键?
- c# - 无法从函数访问 Azure Key Vault - 禁止返回