iXdi - Σύγχρονος προγραμματισμός

Πώς να γράψετε το not in struct του T-Sql στο Linq σε οντότητες ως SubQuery;

Το ερώτημα: -

    select * from Product.Barcodes where Barcode='00A000000O' and  
 Barcode not in(select Barcode from Sales.SalePointItem)

Δοκίμασα τα εξής, αλλά αυτά δεν λειτουργούν:

db.Barcodes.SingleOrDefault(b => b.Barcode.Equals(ItemBarcode) &&  
  !db.SalePointItems.Select(m=>m.Barcode).Contains(b.Barcode));

db.Barcodes.SingleOrDefault(b => b.Barcode.Equals(ItemBarcode) &&  
  !db.SalePointItems.Any(m=>m.Barcode.Equals(b.Barcode)));

Λαμβάνω την ακόλουθη εξαίρεση κατά την εκτέλεση και των δύο παραπάνω:-

Δεν είναι δυνατή η δημιουργία σταθερής τιμής τύπου 'SalePointItemModel'. Μόνο οι πρωτόγονοι τύποι ('όπως Int32, String και Guid') υποστηρίζονται σε αυτό το πλαίσιο.


  • Τι εννοείτε δεν λειτουργεί; Παίρνετε λάθος αποτέλεσμα; Ή η SQL που δημιουργήθηκε δεν είναι αυτό που περιμένετε; Τι είναι η SQL που δημιουργείται; 12.05.2012

Απαντήσεις:


1

Δοκίμασε αυτό:

var item = (from b in db.Barcodes
            where b.Barcode == ItemBarcode
            where !db.SalePointItems.Any(m => m.Barcode == b.Barcode)
            select b).SingleOrDefault();

Σύνταξη μεθόδου -

var item = db.Barcodes.Where(b => b.Barcode == ItemBarcode)
                      .Where(b => !db.SalePointItems.Any(m => m.Barcode == b.Barcode))
                      .SingleOrDefault();
12.05.2012
  • Γνωρίζω αυτή τη μέθοδο, αλλά δεν θέλω ξεχωριστό ερώτημα, ήθελα να το εκτελέσω ως δευτερεύον ερώτημα. Δείτε τον τίτλο της ερώτησης όπως τον έχω ενημερώσει. 12.05.2012
  • Σκοπός είναι να αποφευχθεί η ανάκτηση της λίστας των γραμμωτών κωδίκων στη μνήμη, κάτι που κάνει το αρχικό t-sql. 12.05.2012
  • Στην πραγματικότητα, αυτό λειτουργεί, αλλά έψαχνα για αλυσίδες μεθόδων επέκτασης, γιατί συνήθως γράφω με αυτή τη μορφή, όλες τις απορίες μου. 12.05.2012
  • @puretechy - Πρόσθεσα τον τρόπο μεθόδου επέκτασης. 13.05.2012
  • Νέα υλικά

    Το Python Selenium Web Scraping σας κατέβασε το 2023; Εκκαθαρίστε την προσωρινή μνήμη και ενισχύστε τα αποτελέσματά σας!
    Η απόξεση ιστού με το Python Selenium είναι ένα εξαιρετικό εργαλείο για την εξαγωγή δεδομένων από ιστοσελίδες. Ωστόσο, περιστασιακά, οι ιστοσελίδες ενδέχεται να αποτύχουν να φορτώσουν ή να..

    Έννοιες JavaScript που πρέπει να γνωρίζετε για να ξεκινήσετε με το React
    Αφού είδα αυτή την ερώτηση να τίθεται αμέτρητες φορές, πιστεύω ότι μπορεί να είναι χρήσιμο σε πολλούς ανθρώπους εκεί έξω να έχουν μια σαφή κατανόηση του τι χρειάζεται να είναι γνωστό στο..

    Χρήση της C++ ως γλώσσας δέσμης ενεργειών, μέρος 8
    Βελτίωση κλήσεων λειτουργιών API με χρήση ενσωματωμένης συναρμολόγησης Έχω πειραματιστεί με την ενσωματωμένη συναρμολόγηση στο παρελθόν με κάποια επιτυχία. Είναι περίπλοκο και εύκολο να κάνεις..

    5 αμυχές που πρέπει να γνωρίζετε για να γίνετε σπουδαίος προγραμματιστής.
    5 αμυχές που πρέπει να γνωρίζετε για να γίνετε σπουδαίος προγραμματιστής. Αυτές τις μέρες, πολλοί φιλοδοξούν να εργαστούν ως προγραμματιστές. Αλλά το να γίνεις σπουδαίος προγραμματιστής δεν..

    Πώς να εφαρμόσετε το Deep Learning σε δομημένα δεδομένα
    Η βαθιά μάθηση είναι ένα καυτό και περιζήτητο θέμα τώρα ως μέρες. Η επιτυχία του προέρχεται από το γεγονός ότι είναι εξαιρετικά αποτελεσματικό στην επίλυση σύνθετων προβλημάτων και στην επίτευξη..

    Είναι το AI καλύτερο από τα ζώα στο να βλέπουν στο σκοτάδι;
    Τέχνη Μηχανικής Εκμάθησης Είναι η τεχνητή νοημοσύνη καλύτερη από τα ζώα στο να βλέπουν στο σκοτάδι; Τα όρια της όρασης ρομπότ στο ακραίο σκοτάδι Μελέτη της συμπεριφοράς των ζώων τη..

    Νέα δυνατότητα: Αναπτύξτε περισσότερο τον ανοιχτό κώδικα με το IssueHunt Upvotes
    Είμαστε στην ευχάριστη θέση να σας παρουσιάσουμε τη νεότερη λειτουργία μας: IssueHunt Upvote , τον τέλειο τρόπο υποστήριξης, κοινής χρήσης και παρακολούθησης του αγαπημένου σας ανοιχτού..