Ketika mencoba perancah dengan inti asp.net perintah ini
scaffold-dbcontext "Data Source=(local);Initial
Catalog=MyDb;Integrated Security=True;"
Microsoft.EntityFrameworkCore.sqlserver -outputdir Models
Memberikan kesalahan ini.
scaffold-dbcontext: Istilah 'scaffold-dbcontext' tidak dikenali sebagai nama cmdlet, fungsi, file skrip, atau program yang dapat dioperasikan. Periksa ejaan nama, atau jika jalur disertakan, verifikasi bahwa jalur tersebut benar dan coba lagi. Pada baris: 1 karakter: 1
+ scaffold-dbcontext "Data Source=(local);Initial Catalog=MyDB;In ... + ~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (scaffold-dbcontext:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
Saya telah mencoba solusi di sini , tetapi tidak berhasil untuk saya.
Tahu apa penyebab / penyembuhannya?
entity-framework
asp.net-core
simon831
sumber
sumber
Jawaban:
Bagi saya tampaknya itu berhasil setelah saya juga menjalankan di konsol Package Manager:
Install-Package Microsoft.EntityFrameworkCore.Tools
Pastikan juga:
Untuk memiliki dependensi lain (misalnya Microsoft.EntityFrameworkCore, Microsoft.EntityFrameworkCore.SqlServer, Microsoft.EntityFrameworkCore.SqlServer.Design ...) direferensikan tergantung kebutuhan Anda.
Untuk memilih perakitan yang tepat sebagai target untuk perintah Anda di sudut kanan atas konsol PM (Saya sering tertipu dengan melupakannya ...)
Masalah lain yang saya temui: dengan dbcontext yang terletak di perpustakaan kelas terpisah, saya mengalami kesalahan berikut:
Yang dapat saya perbaiki dengan mengatur perpustakaan kelas saya sebagai proyek Startup di VS (jangan tanya mengapa karena tampaknya tidak ada artinya, tetapi berhasil).
Pengeditan terlambat, ada hal lain yang perlu diketahui: Anda tidak dapat menjalankan Scaffold-DbContext terhadap perpustakaan kelas yang hanya menargetkan .Net Standard, Anda juga harus mengaktifkan netcoreapp di dalamnya, atau Scaffold-DbContext akan mengeluh. Untuk mendukung kedua target, edit csproj menjadi put:
<TargetFrameworks>netcoreapp2.2;netstandard2.0</TargetFrameworks>
Alih-alih<TargetFramework>
bagian.Setelah semua ini, Anda akan dapat menjalankan
Scaffold-DbContext
baris perintah Anda dengan argumen dan string koneksi yang tepat.sumber
hanya itu yang akan berhasil
sumber
Pastikan Anda menjalankan VS sebagai Administrator dan telah menginstal paket berikut:
sumber
Punya masalah yang sama. Dalam kasus saya, saya kehilangan beberapa dependensi, jadi pastikan Anda memiliki yang berikut:
Semoga ini bisa membantu. :)
sumber
Scaffold
perintah adalah bagian daridbcontext
perintah di EF. Di bawah ini adalah detail untuk suksesscaffold
:Referensi paket diperlukan:
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.0.0"/> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0"/> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0"/> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.0.0"/>
Jadi perintah perancah kami akan terlihat seperti:
dotnet ef dbcontext scaffold "Server=localhost\SQLEXPRESS;Database=MyDatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -o OutputDirectory
Server
Nilai Anda mungkin berbeda sesuai nama server Db Anda. GantiMyDatabase
dengan nama Database Anda sepertimaster
danOutputDirectory
ke lokasi yang Anda inginkan untuk kelas scaffold yang baru Anda buat sepertiModels
folder.sumber
Saya telah menginstal Microsoft.EntityFrameworkCore.Tools dari NuGet Package Manager dan itu terlihat di paket yang diinstal. Tapi saya terus mendapatkan kesalahan ini.
Memulai ulang Visual Studio (2019 / Versi 16.4.4) memperbaikinya untuk saya.
sumber
Jika Anda menggunakan .NetCore 2.2, perintah di bawah ini berfungsi seperti pesona bagi saya di command prompt atau Git Bash. Pastikan Anda langsung berada di folder proyek sebelum menjalankan perintah.
Misalnya C: \ App \ ProjectName:
dotnet ef dbcontext scaffold "Server=.\;Database=Databasename;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -o Model
sumber
Pastikan Anda menggunakan konsol yang benar, "Package Manager Console". Ada juga konsol "Terminal" yang terlihat sangat mirip, tetapi tidak berfungsi untuk perintah ini. Package Manager Console dapat ditemukan di View -> Other Windows (pada Visual Studio 2019, ver.16.6.5)
sumber
Saya mengalami penyebab lain dari kesalahan ini baru-baru ini: NuGet sendiri sudah usang.
Memperbarui NuGet menyelesaikan masalah.
Jika jawaban Devanathan tidak berhasil untuk Anda, periksa untuk memastikan NuGet itu sendiri mutakhir.
sumber
Bagi saya ... saat menyalin menempelkan perintah dari microsoft docs, untuk beberapa alasan spasi ekstra ditambahkan di sekitar tanda hubung.
Menghapus tanda hubung memperbaikinya:
salah:
Scaffold - DbContext "Server=(localdb)\mssqllocaldb;Database=myDbName;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer - OutputDir Models
baik:
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=myDbName;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
Dokumen juga mengatakan jika Anda menerima kesalahan ini, coba mulai ulang Visual Studio.
https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db
sumber