Ich hoffe, kann mir helfen, ich bin neu in linq, Ich habe 2 Tabellen Name Tblcart und tbloderdetail: Ich zeige nur einige Felder in diesen beiden Tabellen zu zeigen, was mein Problem ist:Join zwei Tabellen in Linq mit Sonderkonditionen
tblCart: ID, cartId, Barcode,
und tblOrderDetail: ID, cartId, IsCompleted Barcode
, wenn jemand einen Auftrag speichern, bevor er seinen Wunsch bestätigt, eine Zeile vorübergehend in den tblCart eingeben, dann, wenn er oder sie bestätigt seinen Wunsch wird eine weitere Zeile in die tblOrderDetail eingeführt werden,
Jetzt möchte ich nicht das zeigen, Zeilen, die in tblOrderDetailed eingefügt werden (zeigt nur vorübergehend Zeilen, die es in TblCart gibt),
Mit anderen Worten, wenn Zeilen in TblCart mit CartID = 1 und gleichzeitig gibt es die gleiche Zeile mit CartID = 1 in tblOrderDetail, dann möchte ich diese Zeile nicht.
Alles in allem nur die Zeilen, dass es in tblOrderDetail ist nicht, und das Feld zu erkennen, diese cartId ist, Ich sollte erwähnen, dass ich IsCompleted = true machen, und damit entweder können wir ausschließen, die Zeilen die wir nicht wollen ,
ich tat dies:
var cartItems = context.tblCarts
.Join(context.tblSiteOrderDetails,
w => w.CartID,
orderDetail => orderDetail.cartID,
(w,orderDetail) => new{w,orderDetail})
.Where(a=>a.orderDetail.cartID !=a.w.CartID)
.ToList()
aber es funktioniert nicht.
ein Beispiel:
tblCart:
ID=1
CartID=1213
Barcode=4567
ID=2
CartID=1214
Barcode=4567
ID=3
CartID=1215
Barcode=6576
tblOrderDetail:
ID=2
CartID=1213
Barcode=4567
IsCompleted=true
mit diesen Daten sollte es nur die beiden letzten Reihe in tblCart zeigen, ich meine
ID=2
CartID=1214
Barcode=4567
ID=3
CartID=1215
Barcode=6576
können Sie einige Beispielzeilen für jede Tabelle und dann eine Beispielausgabe Ihrer Abfrage mit diesen Zeilen bereitstellen? – pquest
@pquest yup ofcurse – sariiia
Bitte fügen Sie das Modell des Wagens zu Ihrer Frage hinzu - speziell, haben Sie eine Navigationseigenschaft auf dem Warenkorb, um auf die Details zu verweisen? –