簡體   English   中英

將t-sql查詢轉換為LINQ(帶有子查詢的左聯接/嵌套的右聯接)

[英]Translate t-sql query to LINQ (left join with subquery/nested right join)

這是我設法編寫的查詢:

select *
from [Transaction] as t left join (ProductTransaction as pt right join Product as p on pt.productId = p.productId) on t.transactionId = pt.transactionId
                    left join (ReservationTransaction as rt right join Reservations as r on rt.reservationId = r.reservationId) on t.transactionId = rt.transactionId

到目前為止,我已經有了類似的東西(沒有嵌套的右連接),而且我被卡住了。 有人可以幫我這些子查詢/嵌套聯接嗎?

from t in dataContext.Transactions
                join pt in dataContext.ProductTransactions on t.transakcja_id equals pt.transactionId into pTransactions
                from pt in pTransactions.DefaultIfEmpty()
                join rt in dataContext.ReservationTransactions on t.transakcja_id equals rt.transactionId into rTransactions
                from rt in rTransactions.DefaultIfEmpty()

編輯:好的,謝謝你的提示。 我想做的是將〜5個相關的實體(它們與外鍵連接)組合到一張表中。 情況是我需要所有交易,但不是每個交易都與產品或預訂相關。 因此,我不確定是否可以使用簡單的關聯屬性以及比一個查詢多得多的查詢來獲取所有查詢? 也許我應該使用多個查詢並遇到我的胸部問題?

我上傳了我正在研究的實體計划的屏幕截圖。 在此先感謝您的建議。 數據庫方案的一部分 <-無法上傳到我的信譽低的stackoverflow原因

在數據庫中設置外鍵,您將不需要聯接,您將訪問具有此類關聯屬性的鏈接表(僅作為示例):

var transation = dataContact.Transations.First();

var price = transaction.ProductTransaction.Product.Price;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM