此代码的等效sql查询是什么?

时间:2019-10-18 18:28:08

标签: c# sql linq

此代码给出的结果不准确,我需要更改它,但我不了解整个代码在做什么。

我阅读了有关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,那么我可以找出他想做什么,然后找出业务需求并重新编码。

2 个答案:

答案 0 :(得分:1)

您可以通过调用from wagtail.core import hooks from wagtail.admin import widgets as wagtailadmin_widgets from wagtail.admin.widgets import Button, ButtonWithDropdownFromHook, PageListingButton @hooks.register('register_page_listing_buttons') def page_listing_buttons(page, page_perms, is_parent=False): if page.live and page.url: yield PageListingButton( ('View live'), page.url, attrs={'target': "_blank", 'rel': 'noopener noreferrer', 'title': ("View live version of '{title}'").format(title=page.get_admin_display_title())}, priority=30 ) 方法获取由代码生成的SQL代码:

ToString()

答案 1 :(得分:0)

在EF 6及更高版本中,您可以使用

context.Database.Log = Console.Write;

将SQL写入控制台。