Μήπως η σειρά των εκφράσεων ή κατηγορήματα κάνει καμία διαφορά στην κατάσταση ενταχθούν για το εξωτερικό ενώνει το πρότυπο SQL;




Έτσι, είμαι έχοντας ένα κομμάτι από ένα απογοητευτικό ημέρα. I απολύθηκε από τη σύμβαση που είχε εργαστεί τις τελευταίες εβδομάδες, επειδή δεν είχα «πλέγμα με την ομάδα.» Δύο παραδείγματα αναφέρθηκαν:



**1)** Χθες μου ζητήθηκε να διαγράψετε όλα τα δεδομένα από μια βάση δεδομένων του SQL Server με εξαίρεση ορισμένες βασικά δεδομένα του συστήματος. Ο αιτών (δεν το αφεντικό μου) είχε περίπου οκτώ σενάρια που είχε χρησιμοποιηθεί για το έργο αυτό πριν από λίγους μήνες. Προφανώς κανείς δεν έχει σκεφτεί ποτέ να το σενάριο από το μοντέλο δεδομένων ή τα δεδομένα του συστήματος.


Αυτό το άτομο είχε καθιερώσει ένα μοτίβο πάνω-περιπλέκει τα πράγματα, γι 'αυτό προσπαθεί να κατανοήσει τους λόγους για την εργασία και τον τελικό στόχο. Αγωνίστηκα επίσης να καταλάβω γιατί πήρε πάντα όλα τα είδη των αόριστες λάθη που απαιτούνται όλα αυτά τα επιπλέον σενάρια για την «απομάκρυνση και την εκ νέου προσθέσετε περιορισμούς».


Ήμουν πολύ πρόθυμος να κάνει οτιδήποτε είναι αναγκαίο και μιλήσαμε για αρκετά λεπτά γι 'αυτό. Για προφανείς λόγους σκέφτηκα ότι προσπαθούν να καταλάβουν γιατί ήταν ένα καλό πράγμα. Ξαφνικά αποφάσισε ότι θα ήταν απλά πιο γρήγορα για να το κάνει ο ίδιος αντί να ξοδεύουν το χρόνο που εξηγεί τα πάντα για μένα και πήγα πίσω σε άλλους τη δουλειά μου χωρίς να σκεφτόμαστε περισσότερο γι 'αυτό.


Κάπως αυτό ερμηνεύθηκε αρνητικά.


**2)** Πριν από μερικές εβδομάδες κατά την πρώτη εβδομάδα μου ζητήθηκε να εργαστούν για τη συγχώνευση κάποια δεδομένα από ένα άλλο σύστημα. Μου δόθηκε μια 600+ γραμμή σενάριο της δημιουργίας ενός SQL που όλα φαίνεται να είναι σημαντική, μαζί με από του στόματος υβρεολόγιο των καταγγελιών για κακή δεδομένα και τις αρχικές προγραμματιστές. Φυσικά πήρε λίγο χρόνο να εντρυφήσω μέσα από στενά, αλλά μετά από λίγες μέρες τελικό μου αποτέλεσμα αναδειχθεί ως μια απλή συγχώνευση περίπου 25 γραμμές.


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


Δεν ήμουν σίγουρος πόσο εύκολα θα δέχονταν ότι η λύση του προβλήματος φαίνεται να είναι ακριβώς ένα πολύ σύντομο εντολή και αναρωτήθηκα αν ήμουν λείπει κάτι που θα αποδειχθεί ότι είναι ενοχλητικό. Δυστυχώς όλα διερευνητικές ερωτήσεις μου είχε κατ 'επανάληψη συναντήθηκε με το είδος της περιφρονητική μη απαντήσεις που φτωχών δάσκαλοι δίνουν σε μια υπερβολικά περίεργος αρχάριος μαθητής. Γι 'αυτό και έστειλε το ερώτημα κατά μήκος σε ένα μήνυμα ηλεκτρονικού ταχυδρομείου και πήγε σπίτι του.


Το επόμενο πρωί μου είπαν (ίδιο πρόσωπο με # 1), ότι ήταν όλα λάθος, αλλά ήταν πράγματα που δεν θα μπορούσε να αναμένεται να γνωρίζετε ως νέος άνθρωπος. Εξήγησε ότι έπρεπε να τον εαυτό απέχουν από το ξαναγράψιμο όλα. Ένα από τα σημεία της ήταν κάτι ήσσονος σημασίας σχετικά με τα δεδομένα που είχα ήδη προορίζονται να τη ρωτήσω για τον εαυτό μου. Η άλλη ήταν καθαρά SQL.


 (Η ερώτηση ξεκινά εδώ.)


Πάρτε ένα τυπικό αριστερό εξωτερικό σύνδεσμο σενάριο. Όλοι γνωρίζουμε ότι η σειρά των πινάκων είναι αρκετά σημαντική, π.χ., **Q1** και **Q2** δεν είναι ισοδύναμες:



```
SELECT A.x, B.y FROM A LEFT OUTER JOIN B ON A.id = B.id -- (Q1)
SELECT A.x, B.y FROM B LEFT OUTER JOIN A ON B.id = A.id -- (Q2)

```

Όταν σκέφτομαι εννοιολογικά για πολλαπλές ενώνει συνήθως φαίνεται φυσικό για μένα να φανταστώ να πάρει το νέο πίνακα με το αντικείμενο του ενδιαφέροντος και στη συνέχεια περιγράφει πώς οι σειρές του σχετικά με το τι έρθει πριν. Κρατώντας τους όρους παράλληλα δεν έχει κανένα πλεονέκτημα για μένα και από τη δική μου συνήθεια Εγώ γενικά γράψω την συνθήκη συνένωσης με αυτόν τον τρόπο:



```
SELECT A.x, B.y FROM A LEFT OUTER JOIN B ON B.id = A.id -- (Q3)

```

Έτσι, θεωρώ τον εαυτό μου που δίδαξε σχετικά με το πώς η σειρά των πινάκων θέματα σε εξωτερικό σύνδεσμο. Είχα σκεφτεί αυτό το τεστ νοημοσύνης μου έχει ήδη γίνει κατά τη διάρκεια της συνέντευξης εργασίας. Σύγχυση μου μετατράπηκε σε λήθαργο και συνειδητοποίησα ότι ήταν εστιάζει μόνο στη σύγκριση ισότητας. Για την **Q3** ήταν λάθος και **Q1** ήταν η έκδοση που χρειαζόμουν αντ 'αυτού.


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


Υποθέτω ότι δεν είναι άμεσα κατάποση υπερηφάνεια μου έδειξε ότι δεν ήμουν «coachable.»







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


*Μήπως η σειρά των εκφράσεων ή κατηγορήματα κάνει καμία διαφορά στην κατάσταση ενταχθούν για το εξωτερικό ενώνει το πρότυπο SQL;*
Όχι, δεν κάνει καμία διαφορά.


Προσωπικά προτιμώ το στυλ που σας δείχνουν στο Q3, μερικοί από τους συναδέλφους μου προτιμούν το στυλ στο Q1. Δεν ξέρω κανέναν που θα εξετάσει ποτέ ούτε από αυτούς να είναι *λάθος* .


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


Έλεγξα (SQL Server 2005) στο σχέδιο εκτέλεσης των δύο ερωτήματα με τα τελούμενα κατηγόρημα με διαφορετική σειρά, και όπως αναμένεται να είναι πανομοιότυπα.
Υπάρχει μια μεγάλη διαφορά. LINQ-to-SQL ερωτημάτων επιλογής μπορεί να είναι μεγάλες σύνθετες εκφράσεις δέντρα. Της αυτά που μπορεί να λάβει κάποια «σύνταξη». Στην περίπτωση αυτή συνενώνονται σε κάποιο T-SQL που μπορεί να τρέξει εναντίον του SQL Server. Έτσι είναι λογικό να αποθηκεύουν προσωρινά το αποτέλεσμα μιας πράξης, έτσι ώστε να μπορεί να επαναχρησιμοποιηθεί.


Ωστόσο άλλες Διαγραφή, ενημέρωση, και Εισαγωγή είναι απλές λειτουργίες που δεν απαιτούν ένα δέντρο έκφραση για να μετατραπεί σε T-SQL (το ίδιο LINQ είναι όλα σχετικά με την αναζήτηση). Του ακριβώς ατυχές το γεγονός ότι έχουμε εκπαιδευτεί να σκέφτονται SQL κώδικα που εκτελεί αυτές τις άλλες λειτουργίες ως «ερωτήματα», δεν είμαστε actuall ζητούν οποιαδήποτε πληροφορία.


Οι πράξεις αυτές ορίζονται μόνο από την DataContext όχι από LINQ ως εκ τούτου, τον κωδικό για να εκτελέσετε αυτές τις λειτουργίες είναι ήδη συνταχθεί. Διαφωνώ με την απάντησή του Ιωάννη. Η DataContext (ή Linq σε οντότητες ObjectContext) είναι περισσότερο από μια «μονάδα εργασίας» από μια σύνδεση. Διαχειρίζεται την παρακολούθηση αλλαγών, κλπ Δείτε αυτό το blog post για την περιγραφή:


[Διάρκεια ζωής της LINQ to SQL DataContext](http://blogs.msdn.com/dinesh.kulkarni/archive/2008/04/27/lifetime-of-a-linq-to-sql-datacontext.aspx)


Τα τέσσερα κύρια σημεία του αυτό το blog είναι ότι DataContext:


1. Είναι ιδανικό για μια «μονάδα εργασίας» προσέγγιση
2. Είναι επίσης σχεδιασμένο για «απάτριδες» λειτουργία του διακομιστή
3. Δεν είναι σχεδιασμένη για μεγάλη διάρκεια ζωής χρήσης
4. ```
Should be used very carefully after
any SumbitChanges() operation.

```


Λαμβάνοντας υπόψη ότι, δεν νομίζω ότι χρησιμοποιούν περισσότερες από μία DataContext θα κάνει οποιαδήποτε επιβλαβών συνεπειών στην πραγματικότητα, δημιουργώντας διαφορετικές DataContexts για διαφορετικούς τύπους εργασίας θα βοηθήσει να γίνει LinqToSql impelmentation σας πιο usuable και οργανωμένη. Το μόνο μειονέκτημα είναι ότι δεν θα είναι σε θέση να χρησιμοποιήσει sqlmetal για να δημιουργήσει αυτόματα dmbl σας. Είναι πραγματικά εξαρτάται από το είδος των δεδομένων που φέρνετε πίσω. Από ένα σύνολο δεδομένων είναι (στην πραγματικότητα) απλά μια συλλογή από DataTable αντικείμενα, μπορείτε να επιστρέψετε πολλαπλές ξεχωριστές σειρές δεδομένων σε ένα ενιαίο, και ως εκ τούτου πιο διαχειρίσιμη, αντικείμενο. 


Απόδοση-σοφός, έχετε περισσότερες πιθανότητες να πάρει αναποτελεσματικότητα από unoptimized ερωτήματα από ό, τι από το «λάθος» επιλογή του κατασκευάσματος .NET. Τουλάχιστον, αυτό είναι η εμπειρία μου. Οι κύριες κατευθυντήριες γραμμές είναι παρόμοια με οποιοδήποτε άλλο μεγάλο έργο κώδικα. Οι εφαρμογές θα πρέπει να αντιμετωπίσει ένα ενιαίο, σαφώς καθορισμένες ευθύνες. Το όνομα «αίτηση» είναι ψευδεπίγραφος? Django εφαρμογές θα πρέπει να θεωρηθεί περισσότερο ως επαναχρησιμοποιήσιμα συστατικά τα οποία μπορεί να συνδεθεί μαζί για να δημιουργήσουν μια πραγματική εφαρμογή. Δοκιμές για κάθε εφαρμογή θα πρέπει να περιέχονται μέσα σε αυτό το app. Οι εφαρμογές θα πρέπει να αποσυνδεθεί από την άλλη όσο το δυνατόν περισσότερο, αλλά σαφώς θα υπάρχουν εξαρτήσεις, οπότε ο στόχος πρέπει να είναι να κρατήσει το γράφημα εξάρτησης τόσο απλό και λογικό όσο το δυνατόν.


Προτιμώ να κρατήσει όλα τα πρότυπα για ένα έργο σε ένα ενιαίο κατάλογο προτύπων έργων σε όλη την, με ένα υποκατάλογο για κάθε εφαρμογή (χρησιμοποιώντας ένα υποκατάλογο πρότυπο για κάθε εφαρμογή είναι μια πολύ ισχυρή σύμβαση στο Django, καθώς αποφεύγει τις συγκρούσεις όνομα του προτύπου μεταξύ των εφαρμογών) . Ο λόγος για ένα ενιαίο κατάλογο προτύπων έργων σε ολόκληρη είναι ότι τα πρότυπα, τα δέντρα πρότυπο κληρονομιά, και τα ονόματα μπλοκ μπορεί να είναι αρκετά συγκεκριμένο έργο, γι 'αυτό είναι δύσκολο να παρέχουν «default» πρότυπα app που μπορούν να συνδεθούν σε οποιοδήποτε έργο. Έχουν γίνει κάποιες προσπάθειες να εγκατασταθούν σε τυποποιημένες συμβάσεις ονομασίας για τα πρότυπα σε όλη την τοποθεσία βάσης και των τμημάτων για τα καθορίζουν, αλλά δεν έχω δει ένα πρότυπο βγει ακόμα (ο τρόπος που κάνουμε τα πράγματα πάνω σε [Pinax](http://pinaxproject.com) είναι ίσως το πιο κοντινό έχουμε σε ένα πρότυπο).


Re «εξωτερίκευση string», αν εννοείτε i18n και l10n, Django έχει ισχυρή υποστήριξη για το ότι και τα τυποποιημένα μέρη όπου βάζει τα αρχεία .po - ελέγξτε τα [έγγραφα](http://docs.djangoproject.com/en/dev/topics/i18n/#topics-i18n) . Για τον SQL Server 2005, θα ήθελα να συστήσει τη χρήση μεταβλητών τραπέζι και εν μέρει την οικοδόμηση των δεδομένων καθώς πηγαίνετε. 


Για να το κάνετε αυτό, δημιουργήστε μια μεταβλητή πίνακα που αντιπροσωπεύει τελικό σύνολο αποτελεσμάτων σας που θέλετε να στείλετε στο χρήστη.


Στη συνέχεια, βρείτε πρωτοβάθμια τραπέζι σας (για παράδειγμα ο πίνακας παραγγελιών στο παράδειγμά σας πάνω) και τραβήξτε αυτά τα δεδομένα, καθώς και ένα κομμάτι των συμπληρωματικών στοιχείων που μόνο να πω ένα ενταχθεί μακριά (το όνομα του πελάτη, το όνομα του προϊόντος). Μπορείτε να κάνετε ένα SELECT INTO να θέσει αυτό το κατ 'ευθείαν στην μεταβλητή τραπέζι σας.


Από εκεί, μετακινηθείτε μέσα από το πίνακα και για κάθε σειρά, κάνει ένα σωρό μικρά SELECT ερωτήματα που ανακτά όλα τα συμπληρωματικά στοιχεία που χρειάζεστε για το σύνολο των αποτελεσμάτων σας. Τοποθετήστε τα σε κάθε στήλη as you go.


Μόλις ολοκληρωθεί, μπορείτε να κάνετε ένα απλό SELECT * από μεταβλητές τραπέζι σας και να επιστρέψετε αυτό το αποτέλεσμα που στο χρήστη.


Δεν έχω κανένα σκληρό αριθμούς για αυτό, αλλά έχουν υπάρξει τρεις διαφορετικές περιπτώσεις που έχω εργαστεί για σήμερα, όπου κάνει αυτά τα μικρότερα ερωτήματα έχει πραγματικά δουλέψει πιο γρήγορα από ό, τι κάνει ένα τεράστιο ερώτημα επιλογής με μια δέσμη των ενώνει. Έχω γράψει μερικά κομμάτια άποψη για LINQ-to-οντότητες, και τη σχέση της με LINQ-to-SQL:


<http://www.hackification.com/2008/12/03/linq-to-entities-the-blackberry-storm-of-orms/>
[http://www.hackification.com/2008/12/04/linq- to-φορείς-παρακολούθησης /](http://www.hackification.com/2008/12/04/linq-to-entities-follow-up/)


Περίληψη: LINQ-to-SQL δεν είναι το ίδιο με το LINQ-to-οντότητες. L2S έχει ένα μικρό χαρακτηριστικό γνώρισμα-σύνολο, αλλά τι κάνει, το κάνει πολύ καλά. L2E έχει ως στόχο να καλύψει μια πολύ ευρύτερη χαρακτηριστικό-set, αλλά η τρέχουσα έκδοση φαίνεται να έχει κάποια κραυγαλέα κενά (π.χ. τεμπέληδες φόρτωση). v2 της L2E θα πρέπει να είναι πολύ καλύτερα? η τρέχουσα έκδοση (IMHO) μοιάζει περισσότερο με μια βήτα. Αυτό μπορεί να γίνει πιο εύκολα μέσα από τη χρήση ενός πίνακα DB. Συνήθως η DB είναι ήδη ανεκτικό σε σφάλματα και είναι μια ασφαλής πηγή που θα χρησιμοποιηθεί για μια κοινή κλειδαριά σενάριο. Απλά έχουν ένα τραπέζι κλειδαριά που περιέχει κάποιες πληροφορίες σχετικά με το κλειδωμένο πόρο, ο οποίος έχει, όταν, κ.λπ.


Μπορείτε επίσης να χρησιμοποιήσετε ένα από τα διάφορα «κράτος servers» στην αγορά για την αποθήκευση κλειδαριά κατάσταση. Αυτό εισάγει ένα σημείο αποτυχίας όμως, αν δεν επενδύσουμε σε ένα από τα νεότερα διανέμεται κατάσταση τεχνολογίες.


Ωστόσο, είστε πραγματικά μόνοι σας τη σύσταση για περαιτέρω ζητήματα. Θα χρειαστείτε μια οθόνη για να επιτρέψει αναγκάζοντας την ξεκλειδώσετε, την προβολή που έχει την κλειδαριά, κλπ Είσαι καλύτερη από την εξέταση γιατί αυτή η κλειδαριά είναι πραγματικά αναγκαία. Είναι μια τεχνολογία ή την επιχείρηση απαίτηση; Μπορείτε να πιο εύκολα και καθαρά εφαρμόσει ένα απαισιόδοξο σενάριο επικαιροποίησης στοιχείων που θα μπορούσαν να βελτιώσουν την εμπειρία του χρήστη. Χαίρομαι που δεν γνωρίζουν τις απαντήσεις από πρώτο χέρι :), αλλά έχω παίξει με ΕΚΤΕΛΕΣΗ AS και να επανέλθει για εναλλαγή μεταξύ χρηστών


Αλλά εδώ είναι 2 καλές συνδέσεις για να αρχίσει με


Αλλαγή αποθηκευμένης διαδικασίας εκτέλεσης πλαίσιο του SQL Server με χρήση της ρήτρας Επαναφορά


Συνοπτικά: να σας χορηγήσει χρήστη να μιμηθεί όπως λένε DBA, στη συνέχεια, να επανέλθει μετά


<http://www.mssqltips.com/tip.asp?tip=1579>


Δίνοντας Δικαιώματα μέσω αποθηκευμένες διαδικασίες


Σύνοψη: Είμαι πολύ τεμπέλης για να διαβάσετε σε όλο θέμα


<http://www.sommarskog.se/grantperm.html> Πρόσφατα εισήχθη Python στην εταιρεία μου, που κάνει το έργο παροχής συμβουλών για το ταχυδρομείο. Το έκανα αυτό, περιμένοντας μέχρι υπήρχε ένα έργο για το οποίο θα ήμουν ο μόνος προγραμματιστής, στη συνέχεια, να πάρει άδεια για να κάνουν αυτό το νέο έργο στην Python. Στη συνέχεια έκανα ένα άλλο μικρό έργο σε Python με εξίσου εντυπωσιακά αποτελέσματα. Επιπλέον, θα χρησιμοποιηθεί Python για το σύνολο των μικρών μιας χρήσης αναθέσεις μου ( «μπορεί να σας αναλύσει τα στατιστικά σε αυτά τα αρχεία σε ένα αρχείο CSV που διοργανώθηκε από την ημερομηνία και τον τόπο;», κ.λπ.) και είχε ένα γρήγορο χρόνο ολοκλήρωσης για όλα αυτά.


Θα Ευαγγελισθέντες επίσης Python λίγο? Πήγα έξω από το δρόμο μου να μην είναι αντιπαθητικός γι 'αυτό, αλλά θα ήθελα μερικές φορές να περιγράψετε γιατί μου άρεσε τόσο πολύ, μίλησε για τα προσωπικά σχέδια μπορώ να το χρησιμοποιήσω στον ελεύθερο χρόνο μου και γιατί είναι φοβερό για μένα, κ.λπ.


Τελικά ξεκινήσαμε ένα άλλο έργο και έπεισε όλους να χρησιμοποιήσετε την Python για αυτό. Φρόντισα να επισημάνω σε όλους σε πολλά έγγραφα, συμπεριλαμβανομένων των ειδικών ιστοσελίδες που σχετίζονται με αυτό που εργαζόμαστε, και κάθε φορά που είχε μια ερώτηση, θα ήθελα να εξηγήσω πώς να το κάνουμε τα πράγματα σωστά, εξηγώντας την προσέγγιση Pythonic στα πράγματα, κ.λπ. .


Αυτό λειτούργησε πολύ καλά. Ωστόσο, αυτό θα μπορούσε να είναι κάπως διαφορετικό από αυτό που περιγράφουν. Στην περίπτωσή μου άρχισε με μέτρια μικρά έργα και Python χρησιμοποιείται μόνο για νέα έργα. Επίσης, κανένας από τους συναδέλφους μου ήταν πραγματικά Perl ή PHP γκουρού? όλοι γνώριζαν αυτές τις γλώσσες και είχε τα χρησιμοποιούν για λίγο, αλλά δεν χρειάστηκε πολλή προσπάθεια για να γίνουν πιο παραγωγικοί στην Python από ό, τι θα ήταν πριν.


Έτσι, αν μιλάμε για νέα έργα με άτομα που χρησιμοποιούν σήμερα PHP, αλλά δεν είναι σούπερ-εμπειρογνώμονες και δεν αγαπούν αυτή τη γλώσσα, τότε νομίζω ότι στραφούν σε Python είναι μια μη-brainer. Ωστόσο, αν μιλάμε για την εργασία με ένα μεγάλο υπάρχοντα κώδικα PHP βάση με πολύ πολύ έμπειρους προγραμματιστές PHP που είναι ευχαριστημένοι με τις τρέχουσες ρυθμίσεις τους, στη συνέχεια, εναλλαγή γλωσσών δεν είναι πιθανώς μια καλή ιδέα. Είστε πιθανώς κάπου στο ενδιάμεσο, οπότε θα πρέπει να σταθμίσουν τις ανταλλαγές? ελπίζω η απάντησή μου θα σας βοηθήσει να το κάνουμε αυτό. Η λύση είναι να διαγράψετε και να προσθέσετε ξανά τους δύο πίνακες με το LINQ to SQL διάγραμμα, όχι μόνο αυτό που έχετε προσθέσει το δεύτερο πεδίο και τα πλήκτρα για να.


Εναλλακτικά, φαίνεται μπορείτε να κάνετε δύο ενώσεις χρησιμοποιώντας το LINQ to SQL interface - απλά μην προσπαθήσετε και να τις ενώσετε σε μία ενιαία ένωση.