Χρησιμοποιώντας ASP.NET Dynamic Data / LINQ to SQL, πώς έχετε δύο πεδία του πίνακα έχουν σχέση με την ίδια ξένο κλειδί;




Είμαι χρησιμοποιώντας ASP.NET Dynamic Data για ένα έργο και έχω έναν πίνακα που έχει δύο ξεχωριστά πεδία που συνδέονται με τον ίδιο ξένο κλειδί σε ένα διαφορετικό τραπέζι.


Αυτή η σχέση λειτουργεί καλά στον SQL Server.


Ωστόσο, στο μοντέλο LINQ σε SQL στο μοντέλο ASP.NET Dynamic Data, η σχέση μόνο το πρώτο πεδίο αντανακλάται. Αν θα προσπαθήσετε να προσθέσετε το δεύτερο σχέση με μη αυτόματο τρόπο, καταγγέλλει ότι «δεν είναι δυνατή η δημιουργία σύνδεσης“ForeignTable\_BaseTable”. Το ίδιο ακίνητο είναι εισηγμένη περισσότερο από μία φορά:“Id”.»


[Αυτό το άρθρο MSDN](http://msdn.microsoft.com/en-us/library/bb629292.aspx) δίνει τέτοιες χρήσιμες συμβουλές:


* Εξετάστε το μήνυμα και να σημειώσετε το ακίνητο που καθορίζεται στο μήνυμα.
* Κάντε κλικ στο OK για να κλείσετε το πλαίσιο μηνύματος.
* Ελέγξτε τις Ιδιότητες σύνδεσης και αφαιρέστε τις διπλές καταχωρήσεις.
* Κάντε κλικ στο κουμπί OK.
Η λύση είναι να διαγράψετε και να προσθέσετε ξανά τους δύο πίνακες με το LINQ to SQL διάγραμμα, όχι μόνο αυτό που έχετε προσθέσει το δεύτερο πεδίο και τα πλήκτρα για να.


Εναλλακτικά, φαίνεται μπορείτε να κάνετε δύο ενώσεις χρησιμοποιώντας το LINQ to SQL interface - απλά μην προσπαθήσετε και να τις ενώσετε σε μία ενιαία ένωση.
Συχνά αυτό επιτυγχάνεται με τη χρήση [«Driven δεδομένων Συνδρομές»](https://msdn.microsoft.com/en-us/library/ms169673.aspx) , αλλά αυτή η λειτουργία είναι διαθέσιμη μόνο σε ορισμένες εκδόσεις του SQL: Enterprise και Business Intelligence, αλλά όχι στο πρότυπο.


Έτσι, υπάρχει μια σειρά από δημιουργικές λύσεις. Αλλά δεν μου αρέσει κάποια από αυτές, και απαιτούν ένα δίκαιο κομμάτι της εργασίας έξω από SSRS.


Οι λύσεις που έχω δει περιλαμβάνουν: Δημιουργία της εγγραφής και στη συνέχεια απενεργοποίηση ή επιτρέπουν την εργασία SQL που στέλνει τη συνδρομή (που προσδιορίζονται από GUID.)


Δημιουργήστε ένα .exe .NET περιτύλιγμα για να χειριστεί την αποστολή του email. Μπορεί να εκτελέσετε το ερώτημα πρώτα να δούμε πόσα επέστρεψε σειρές, και στη συνέχεια, αν χρειαστεί, να δημιουργήσει την έκθεση και να συμπεριληφθεί σε ένα email. Θα πρέπει να δώσετε περισσότερες πληροφορίες σχετικά με το περιβάλλον ανάπτυξής σας για να πάρετε μια συγκεκριμένη απάντηση.


Για παράδειγμα, με ένα C # έργο στο Visual Studio, μπορείτε να κάνετε δεξί κλικ στα Project-> Ιδιότητες και, στη συνέχεια, να συμπληρώσετε το πεδίο «Εντολή επιχειρήματα γραμμή» στην καρτέλα «Debug». Γεια! Από ελληνικά είναι διαθέσιμα μόνο τα αγγλικά, μπορείς όμως είτε να εξασκήσεις περαιτέρω τα αγγλικά σου κάνοντας το 'Ελληνικά για αυτούς που μιλάνε Αγγλικά', είτε, για άλλη ξένη γλώσσα, να τη μάθεις από τα αγγλικά. Πήγαινε στο προφίλ σου [εδώ](https://www.duolingo.com/settings/direction) και δες τις επιλογές. Προσοχή! Αν επιλέξεις να μάθεις μια γλώσσα από τα αγγλικά όλο το site θα αλλάξει γλώσσα και θα είναι στα αγγλικά. Σε κάθε περίπτωση το μενού θα είναι το ίδιο και θα μπορείς να αλλάζεις μεταξύ των γλωσσών με τον ίδιο τρόπο.


Όσο για τα αγγλικά:


Hello. Does anyone **know** if I can **study** a second language at the same time? Thank you.


Στην ερώτηση και την άρνηση το s φεύγει από το κυρίως ρήμα (know) και πηγαίνει στο βοηθητικό (does). Επίσης στα αγγλικά πρέπει να πεις μελετώ ή κάτι παρόμοιο, δυστυχώς το 'κάνω' δε βγάζει νόημα. Κατά τα άλλα ήταν μια χαρά! :) <p>το .net 4.0 επιτρέπει στα πρωτεύοντα σύνολα interop (ή μάλλον, τα bits που χρειάζεστε) να ενσωματωθούν στη συνέλευση σας, ώστε να μην χρειάζεται να τα αναπτύξετε παράλληλα με την εφαρμογή σας.</p><p>για οποιονδήποτε λόγο, αυτή η συνέλευση δεν μπορεί να ενσωματωθεί - αλλά αυτό ακούγεται σαν να μην είναι πρόβλημα για εσάς. ανοίξτε την καρτέλα ιδιότητες για τη συνέλευση στο visual studio 2010 και ορίστε "ενσωμάτωση τύπων interop" σε "false".</p><p>edit: δείτε επίσης την <a href="https://stackoverflow.com/a/4553402/641833">απάντηση</a> του michael gustus, καταργώντας το επίθημα <code>class</code> από τους τύπους που χρησιμοποιείτε.</p> καλό είναι να ξέρουμε και λιγάκι τι κάνουμε. το αρχείο /var/lib/pacman/db.lck υπάρχει ακριβώς για να κλειδώνει την βάση να μην γίνει γίνουν αλλαγές από δυο μεριές ταυτόχρονα. υπάρχει δηλαδή για ασφάλεια όταν ενημερώνουμε το σύστημα. μπορεί κάτι να στραβώσει και να ξεμείνει εκεί οπότε η λύση είναι πρ… Προσθέστε οδηγός σας σε JMeter / lib φάκελο


Στη συνέχεια, προσθέστε μια [Διαμόρφωση JDBC σύνδεσης](https://jmeter.apache.org/usermanual/component_reference.html#JDBC_Request%20%20http://jmeter.apache.org/usermanual/component_reference.html#JDBC_Connection_Configuration) και συμπληρώστε:


* URL Βάση Δεδομένων: <https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html>
* JDBC Driver κατηγορία: com.mysql.jdbc.Driver
* σύνδεσης και τον κωδικό πρόσβασης
* Όνομα μεταβλητής θα εντοπίσει τη σύνδεση


Στη συνέχεια, προσθέστε μια [Αίτηση JDBC](https://jmeter.apache.org/usermanual/component_reference.html#JDBC_Request) κάτω από ένα [νήμα Ομάδα](https://jmeter.apache.org/usermanual/component_reference.html#Thread_Group)


και συμπληρώστε:


* Μεταβλητή Όνομα: ίδια τιμή με εκείνη στο JDBC Διαμόρφωση σύνδεσης
* Οι άλλοι τομείς που εξαρτώνται από το τι θέλετε να κάνετε


Διαβάστε αυτό το σεμινάριο:


* [http://jmeter.apache.org/usermanual/build-db-test-plan.html](https://jmeter.apache.org/usermanual/build-db-test-plan.html) Από τα περαιτέρω σχόλια που έγιναν από τον συγγραφέα, που ψάχνουν για ένα Node.js ORM που λειτουργεί με δύο οδηγούς MySQL και Oracle.


Εκεί δεν φαίνεται να είναι πολλά ΝΤΥΠΑ που ταιριάζει η περιγραφή και είναι επίσης υποστηρίζονται (προειδοποίηση - βασίζονται αποκλειστικά σε λίγες αναζητήσεις του Google).


Υπάρχει μία διαπίστωσα ότι ταιριάζει με την περιγραφή αν και ακόμα φαίνεται να υποστηρίζεται ενεργά και ότι είναι knex (βλ <https://knexjs.org> ). οι διευθύνσεις αυτές είναι τα shorcuts στη σελίδα about:home. συγκεκριμένα τα 8 πρώτα αν έχεις μία σειρά ενεργή, και τα 10 πρώτα αν έχεις 2-4. οι ρυθμίσεις παραμένουν ενεργές και αν τα απενεργοποιήσεις. μπορείς και μέσω τερματικού για να μην μπλέκεις και να ψάχνεις παράθυρα. 
πατάς ctrl+alt+t για να ανοίξεις το τερματικό και πληκτρολογείς την εντολή passwd θα σου ζητήσει τον υπάρχον κωδικό και να πληκτρολογήσεις 2 φορές το νέο. Αυτό είναι ένα τεχνικό πρόβλημα παρακαλώ να κάνετε μια αναφορά εδώ.



> 
> <https://support.duolingo.com/hc/el>
> 
> 
>