Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 22846|Απάντηση: 0

[.NET Πυρήνας] 【Πρακτική μάχη】ASP.NET Εισαγωγικό σεμινάριο Core Entity Framework Core

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 6/5/2019 3:38:54 μ.μ. | | | |
Το Entity Framework (EF) Core είναι μια ελαφριά, επεκτάσιμη, ανοιχτού κώδικα και cross-platform έκδοση της δημοφιλούς τεχνολογίας πρόσβασης δεδομένων Entity Framework.

Το EF Core μπορεί να χρησιμοποιηθεί ως object-relational mapper (O/RM), έτσι ώστε οι προγραμματιστές .NET να μπορούν να εργάζονται με βάσεις δεδομένων με αντικείμενα .NET, ώστε να μην χρειάζεται να γράφουν συχνά το μεγαλύτερο μέρος του κώδικα πρόσβασης δεδομένων.

Πάροχος βάσης δεδομένων:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Το περιβάλλον που χρησιμοποιείται σε αυτό το άρθρο:

  • Εργαλεία ανοίγματος: VS 2017
  • Έκδοση dotnet: 2.1.301
  • Βάση δεδομένων: SQL Sever 2012


Δημιουργήστε ένα έργο



1: Το BaiDuPan.WebUI είναι μια ASP.NET για τη δημιουργία μιας εφαρμογής web Core.



2: Το BaiDuPan.DomainModel είναι η δημιουργία μιας βιβλιοθήκης κλάσεων (.NET Core).

Προσθήκη αναφοράς Entity Framework Core

Αναπτύχθηκε με vs2017. NET Framework, κατά την προσθήκη του ef 6, μπορείτε να το προσθέσετε απευθείας κάνοντας δεξί κλικ στο έργο, όπως φαίνεται στο παρακάτω σχήμα:



Ωστόσο, οι πυρήνες EF δεν μπορούν να προστεθούν με τον παραπάνω τρόπο.

Εντολή PM:


Με την παραπάνω διαταγή,Το πρόγραμμα προσθέτει αυτόματα τα απαιτούμενα πακέτα εξάρτησηςΕπομένως, δεν χρειάζεται να προσθέσετε το πακέτο Microsoft.EntityFrameworkCore.

Προσθήκη μοντέλων περιβάλλοντος και οντοτήτων

Μοντέλα ταινιών:


Πλαίσιο βάσης δεδομένων PanDb:

Startup class, η οποία προσθέτει έγχυση εξάρτησης περιβάλλοντος βάσης δεδομένων (Εδώ πρέπει να προσθέσετε μια αναφορά DomainModel στο WebUI):


Ο παραπάνω κώδικας απαιτεί από το έργο να αναφέρεται στο Microsoft.EntityFrameworkCore.SqlServer, αλλά το BaiDuPan.WebUI δεν χρειάζεται να αναφέρεται στο Microsoft.EntityFrameworkCore.SqlServer, γιατί δεν αναφέρεται σφάλμα;

Microsoft.AspNetCore.App πακέτο περιλαμβάνει όλες τις δυνατότητες του ASP.NET Core 2.1 και νεότερη έκδοση και του Entity Framework Core 2.1 και νεότερη έκδοση. Τα προεπιλεγμένα πρότυπα έργων για ASP.NET Core 2.1 και νεότερες εκδόσεις χρησιμοποιούν αυτό το πακέτο. Τα πακέτα Microsoft.AspNetCore.App συνιστώνται για εφαρμογές με ASP.NET Core 2.1 και νεότερες εκδόσεις και Entity Framework Core 2.1 και νεότερες εκδόσεις.


appsettings.json Διαμορφώστε τη συμβολοσειρά σύνδεσης βάσης δεδομένων:


Προσπαθήστε να ξεκινήσετε το έργο με το ακόλουθο σφάλμα:

Το σφάλμα NU1107 εντοπίζει μια διένεξη έκδοσης στο Microsoft.EntityFrameworkCore. Η αναφορά στο πακέτο απευθείας από το έργο λύνει αυτό το πρόβλημα.
BaiDuPan.WebUI -> BaiDuPan.DomainModel -> Microsoft.EntityFrameworkCore.SqlServer 2.2.4 -> Microsoft.EntityFrameworkCore.Relational 2.2.4 -> Microsoft.EntityFrameworkCore (>= 2.2.4)
BaiDuPan.WebUI -> Microsoft.AspNetCore.App 2.1.1 -> Microsoft.EntityFrameworkCore (>= 2.1.1 && < 2.2.0).        BaiDuPan.WebUI C:\Users\itsvse_pc\Source\Repos\baidupan\BaiDuPan.WebUI\BaiDuPan.WebUI.csproj 1       

Ο λόγος είναι ότι υπάρχει διένεξη έκδοσης μεταξύ των δύο έργων, προσπαθήστε να εγκαταστήσετε μια υψηλότερη έκδοση του ef core στο BaiDuPan.WebUI, το νέο σφάλμα είναι το εξής:

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Έκδοση 2.2.4
  ΑΠΟΚΤΗΣΤΕhttps://api.nuget.org/v3/registr ... qlserver/index.json
  ΚΡΥΦΉ ΜΝΉΜΗhttps://api.nuget.org/v3/registr ... qlserver/index.json
Επαναφορά του πακέτου του C:\Users\itsvse_pc\Source\Repos\baidupan\BaiDuPan.WebUI\BaiDuPan.WebUI.csproj...
NU1608: 检测到的包版本在依赖项约束之外: Microsoft.AspNetCore.App 2.1.1 需要 Microsoft.EntityFrameworkCore.SqlServer (>= 2.1.1 && < 2.2.0),但版本 Microsoft.EntityFrameworkCore.SqlServer 2.2.4 已解决。
Install-Package: NU1107: Εντοπίστηκε διένεξη έκδοσης στο Microsoft.EntityFrameworkCore. Η αναφορά στο πακέτο απευθείας από το έργο λύνει αυτό το πρόβλημα.
BaiDuPan.WebUI -> Microsoft.EntityFrameworkCore.SqlServer 2.2.4 -> Microsoft.EntityFrameworkCore.Relational 2.2.4 -> Microsoft.EntityFrameworkCore (>= 2.2.4)
BaiDuPan.WebUI -> Microsoft.AspNetCore.App 2.1.1 -> Microsoft.EntityFrameworkCore (>= 2.1.1 && < 2.2.0).
Γραμμή τοποθεσίας: 1 Χαρακτήρες: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Έκδοση 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Install-Package], Εξαίρεση
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Install-Package: Η επαναφορά πακέτου απέτυχε. Επαναφορά αλλαγών πακέτου για το "BaiDuPan.WebUI".
Γραμμή τοποθεσίας: 1 Χαρακτήρες: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Έκδοση 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Install-Package], Εξαίρεση
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Ώρα Απριλίου: 00:00:01.4208784
ΠΜ>



Τι να κάνω? Η λύση είναι η εξής:

Υποβάθμιση, το έργο BaiDuPan.WebUI αναφέρεται στο Microsoft.EntityFrameworkCore 2.1.1, επομένως εκτελούμε ξανά την εντολή nuget στο έργο BaiDuPan.DomainModel, ως εξής:

Με αυτόν τον τρόπο, εγγυόμαστε ότι όλα τα έργα έχουν την ίδια έκδοση EF Core.

Αρχικοποιήστε τη βάση δεδομένων

Η βάση δεδομένων και ο πίνακας δημιουργήθηκαν με επιτυχία όπως φαίνεται στην παρακάτω εικόνα:



Προσθήκη του χειριστηρίου MovieController

Ο κωδικός έχει ως εξής:

Η μέθοδος ευρετηρίου είναι η αναζήτηση όλων των δεδομένων στον πίνακα ταινιών της βάσης δεδομένων και η μέθοδος Δημιουργία είναι η προσθήκη νέων δεδομένων, ας προσπαθήσουμε να προσθέσουμε ένα κομμάτι δεδομένων και να το ζητήσουμε με τον ταχυδρόμο, όπως φαίνεται στο παρακάτω σχήμα:

Η σύνδεση με υπερσύνδεσμο είναι ορατή.Αίτημα POST


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



Όσο για τις τροποποιήσεις και τις διαγραφές, είναι αυτονόητο!

Πόροι:

Πυρήνας πλαισίου οντότητας:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

ASP.NET Πυρήνας:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

(Τέλος)


Παρτιτούρα

Αριθμός συμμετεχόντων1ΜΒ+1 συνεισφέρω+1 Κατάρρευση λόγος
διαχειριστής + 1 + 1 Πολύ δυνατό!

Δείτε όλες τις αξιολογήσεις





Προηγούμενος:Υπάρχουν δάσκαλοι;
Επόμενος:Μέθοδος συμβολοσειράς διαχωρισμού κόμματος
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com