Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 22846|Jawab: 0

[Inti .NET] 【Pertempuran Praktis】ASP.NET Tutorial pengantar Inti Kerangka Entitas Inti Inti

[Salin tautan]
Diposting pada 06/05/2019 15.38.54 | | | |
Entity Framework (EF) Core adalah versi teknologi akses data Entity Framework yang populer, mudah diperluas, sumber terbuka, dan lintas platform.

EF Core dapat digunakan sebagai pemetaan relasional objek (O/RM) sehingga pengembang .NET dapat bekerja dengan database dengan objek .NET sehingga mereka tidak perlu sering menulis sebagian besar kode akses data.

Penyedia Basis Data:Login hyperlink terlihat.

Lingkungan yang digunakan dalam artikel ini:

  • Alat Terbuka: VS 2017
  • Versi dotnet: 2.1.301
  • Basis data: SQL Sever 2012


Membuat proyek



1: BaiDuPan.WebUI adalah ASP.NET untuk membuat aplikasi web Core;



2: BaiDuPan.DomainModel adalah untuk membuat perpustakaan kelas (.NET Core);

Menambahkan referensi Entity Framework Core

Dikembangkan dengan vs2017. NET Framework project, saat menambahkan ef 6, Anda dapat langsung menambahkannya dengan mengklik kanan pada project, seperti yang ditunjukkan pada gambar di bawah ini:



Namun, inti EF tidak dapat ditambahkan dengan cara di atas.

Perintah PM:


Dengan urutan di atas,Program ini secara otomatis menambahkan paket dependensi yang diperlukanJadi, tidak perlu menambahkan paket Microsoft.EntityFrameworkCore.

Menambahkan model konteks dan entitas

Model Film:


Konteks database PanDb:

Startup, yang menambahkan injeksi dependensi konteks database (Di sini Anda perlu menambahkan referensi DomainModel ke WebUI):


Kode di atas mengharuskan proyek untuk mereferensikan Microsoft.EntityFrameworkCore.SqlServer, tetapi BaiDuPan.WebUI tidak perlu mereferensikan Microsoft.EntityFrameworkCore.SqlServer, mengapa tidak dilaporkan kesalahan?

Paket Microsoft.AspNetCore.App mencakup semua fitur ASP.NET Core 2.1 dan yang lebih baru serta Entity Framework Core 2.1 dan yang lebih baru. Templat proyek default untuk ASP.NET Core 2.1 dan yang lebih baru menggunakan paket ini. Paket Microsoft.AspNetCore.App direkomendasikan untuk aplikasi dengan ASP.NET Core 2.1 dan yang lebih baru dan Entity Framework Core 2.1 dan yang lebih baru.


appsettings.json Mengonfigurasi string koneksi database:


Coba mulai proyek dengan kesalahan berikut:

Kesalahan NU1107 mendeteksi konflik versi di Microsoft.EntityFrameworkCore. Mereferensikan paket langsung dari proyek memecahkan masalah ini.
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.WebUI.csproj 1       

Pasalnya, ada konflik versi antara kedua proyek tersebut, coba instal ef core versi yang lebih tinggi di BaiDuPan.WebUI, kesalahan barunya adalah sebagai berikut:

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Versi 2.2.4
  DAPATKANhttps://api.nuget.org/v3/registr ... qlserver/index.json
  CACHEhttps://api.nuget.org/v3/registr ... qlserver/index.json
Mengembalikan paket C:\Users\itsvse_pc\Source\Repos\baidupan\BaiDuPan.WebUI\BaiDuPan.WebUI.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: Konflik versi terdeteksi di Microsoft.EntityFrameworkCore. Mereferensikan paket langsung dari proyek memecahkan masalah ini.
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).
Garis Lokasi: 1 Karakter: 1
+ Instal-Paket Microsoft.EntityFrameworkCore.SqlServer -Versi 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Install-Package], Pengecualian
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Install-Package: Pemulihan paket gagal. Memutar kembali perubahan paket untuk "BaiDuPan.WebUI".
Garis Lokasi: 1 Karakter: 1
+ Instal-Paket Microsoft.EntityFrameworkCore.SqlServer -Versi 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Install-Package], Pengecualian
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Waktu Apred: 00:00:01.4208784
PM>



Apa yang harus dilakukan? Solusinya adalah sebagai berikut:

Downgrade, proyek BaiDuPan.WebUI mereferensikan Microsoft.EntityFrameworkCore 2.1.1, jadi kami menjalankan kembali perintah nuget dalam proyek BaiDuPan.DomainModel, sebagai berikut:

Dengan cara ini, kami menjamin bahwa semua proyek memiliki versi EF Core yang sama.

Menginisialisasi database

Database dan tabel berhasil dibuat seperti yang ditunjukkan pada gambar berikut:



Menambahkan pengontrol MovieController

Kodenya adalah sebagai berikut:

Metode Index adalah untuk mengkueri semua data dalam tabel Film database, dan metode Create adalah untuk menambahkan data baru, mari kita coba tambahkan sepotong data dan memintanya dengan tukang pos, seperti yang ditunjukkan pada gambar di bawah ini:

Login hyperlink terlihat.Permintaan POST


Program ini dapat dijalankan dengan lancar, tidak ada pengecualian yang dilemparkan, membuktikan bahwa penyisipan berhasil, dan akses dicoba:Login hyperlink terlihat.Kueri semua data seperti yang ditunjukkan pada gambar di bawah ini:



Adapun modifikasi dan penghapusan, tak perlu dikatakan lagi!

Sumber daya:

Inti Kerangka Entitas:Login hyperlink terlihat.

ASP.NET Inti:Login hyperlink terlihat.

(Akhir)


Skor

Jumlah peserta1MB+1 sumbang+1 Roboh alasan
Admin + 1 + 1 Sangat kuat!

Lihat semua penilaian





Mantan:Apakah ada master?
Depan:Metode string pemisahan koma
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com