Saya baru mengenal inti EF dan saya mencoba membuatnya bekerja dengan proyek Core ASP.NET saya.
Saya mendapatkan kesalahan di atas startup.cs
ketika mencoba mengkonfigurasi DbContext
untuk menggunakan string koneksi dari konfigurasi. Saya mengikuti tutorial ini: https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro
Kode bermasalah di startup.cs
:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.SpaServices.Webpack;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.EntityFrameworkCore;
using tracV2.models;
using tracV2.data;
namespace tracV2
{
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddSingleton<IConfiguration>(Configuration);
string conn = Configuration.GetConnectionString("optimumDB");
services.AddDbContext<tracContext>(options => options.usesqlserver(conn));
}
The UseSqlServer
Metode diakui jika saya memasukkannya langsung ke dalam konteks:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
namespace tracV2.data
{
public class tracContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("myrealconnectionstring");
}
Semua riset saya secara online menunjuk pada referensi yang hilang, tetapi sepertinya saya tidak bisa menemukan yang mana yang saya lewatkan ( lihat gambar ).
asp.net-core
entity-framework-core
Maxime Laflamme
sumber
sumber
Jawaban:
Ini adalah masalah yang diketahui dalam sistem proyek. Lihat dotnet / proyek-sistem # 1741
sumber
Pertama kita menginstal Paket NuGet Microsoft.EntityFrameworkCore.SqlServer :
Lalu, setelah mengimpor namespace dengan
kami menambahkan konteks basis data:
sumber
menambahkan
using Microsoft.EntityFrameworkCore;
memecahkan masalah secara manual untuk saya
Ditemukan di sini
Edit ...
untuk dotnet core 3.1 tambahkan
Microsoft.EntityFrameworkCore.SqlServer
sumber
Instal di bawah Paket NuGet akan menyelesaikan masalah Anda
Microsoft.EntityFrameworkCore.SqlServer
sumber
Paket tidak ada. Buka Paket Pengelola Konsol dan jalankan kode di bawah ini:
sumber
Ikuti langkah-langkah di bawah ini.
Instal Entity Framework Core Design dan penyedia database SQL Server untuk Entity Framework Core:
Inti Kerangka Entitas Impor:
Dan konfigurasikan DbContext Anda:
sumber
Saya menggunakan Visual Studio Code.
1) Cobalah untuk menginstal paket 'Microsoft.EntityFrameworkCore.SqlServer' dengan menentukan nomor versi.
Kode VS :
'dotnet tambahkan paket Microsoft.EntityFrameworkCore.SqlServer -v 1.1.1'
Studio visual:-
'Instal-Paket Microsoft.EntityFrameworkCore.SqlServer -v 1.1.1'
Rujuk tautan ' Paket' Microsoft.EntityFrameworkCore.SqlServer 'tidak kompatibel dengan kerangka' semua 'dalam proyek ' untuk melakukannya.
2) Kemudian tambahkan namespace ' menggunakan Microsoft.EntityFrameworkCore;'secara manual di file Startup.cs.
Lihat tautan di bawah ini https://github.com/aspnet/EntityFramework/issues/7891 .
3) Jika Anda mendapatkan masalah ketergantungan untuk ' Microsoft.EntityFrameworkCore.SqlServer.Design' , seperti "Paket ' Microsoft.EntityFrameworkCore.Design' tidak kompatibel dengan 'semua' kerangka kerja dalam proyek ", kita perlu menjalankan perintah di bawah ini,
Kode VS: -
dotnet tambahkan paket Microsoft.EntityFrameworkCore.Design -v 1.1
Studio visual
Instal-Paket Microsoft.EntityFrameworkCore.Design -v 1.1
sumber
Project -> ManageNugetPackages -> Browse -> Cari "Microsoft.EntityFrameworkCore.SqlServer" dan instal atau perbarui.
sumber
Seperti disebutkan oleh jawaban skor atas oleh Win, Anda mungkin perlu menginstal Microsoft.EntityFrameworkCore.SqlServer Paket NuGet, tetapi harap dicatat bahwa pertanyaan ini menggunakan asp.net core mvc. Dalam ASP.NET Core 2.1 terbaru, MS telah memasukkan apa yang disebut metapackage yang disebut Microsoft.AspNetCore.App
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage-app?view=aspnetcore-2.2
Anda dapat melihat referensi untuk itu jika Anda mengklik kanan proyek ASP.NET Core MVC di penjelajah solusi dan pilih
Edit Project File
Anda akan melihat metapackage ini jika ASP.NET core webapps pernyataan menggunakan
<PackageReference Include="Microsoft.AspNetCore.App" />
Microsoft.EntityFrameworkCore.SqlServer termasuk dalam metapackage ini. Jadi di Startup.cs Anda, Anda mungkin hanya perlu menambahkan:
using Microsoft.EntityFrameworkCore;
sumber
Saya percaya ini dapat diselesaikan dengan menambahkan referensi proyek ke Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.SqlServer tidak langsung diinstal di proyek saya, tetapi paket .Design akan tetap menginstalnya sebagai prasyarat.
sumber
Bagi saya masalah ini terjadi dengan Visual Studio Code dan saya dapat memperbaikinya dengan 2 langkah:
using Microsoft.EntityFrameworkCore;
dotnet build
di terminal.sumber
Di Visual Studio, periksa NuGet Package Manager => Kelola Paket untuk Solusi , periksa semua paket ini, apakah sudah diinstal dalam solusi Anda atau tidak, seperti di bawah ini:
Saya memecahkan masalah yang sama setelah memeriksa semua paket di atas telah diinstal.
sumber
Instal paket, EntityFrameworkCore.SqlServer:
Nuget: https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.SqlServer/
sumber
tambah pertama
Install-Package Microsoft.EntityFrameworkCore.SqlServer
selanjutnya tambahkan file .cs Anda
using Microsoft.EntityFrameworkCore;
akhirnya tambahkan ini di inti Anda
Startup.cs
sumber
. Saya pikir ini adalah masalah dengan versi Sqlite, saya memiliki masalah yang sama ketika saya menggunakan versi SqLite ini
Versi 2.2.4 :
Setelah memeriksa versi di sini saya mengubah versi kemudian bekerja.
Tidak ada kesalahan setelah menggunakan ini
Versi 2.1.2 :
sumber
Saya menyiasati ini hanya dengan:
Menambahkan
SqlServerDbContextOptionsExtensions
ke kelas yang dimaksud SelesaikanSqlServerDbContextOptionsExtensions
Ini memperbaiki masalah, harus kehilangan beberapa referensi secara default.
sumber
Bagi siapa pun yang masih memiliki masalah ini: Gunakan NuGet untuk menginstal: Microsoft.EntityFrameworkCore.Proxies
Masalah ini terkait dengan penggunaan Castle Proxy dengan EFCore.
sumber
Wow begitu banyak jawaban namun tidak ada yang menyebutkan paket Microsoft.EntityFrameworkCore.InMemory ini !
Tambahkan referensi ke paket ini:
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.2.2" />
dan Anda harus siap.sumber
Saya mengalami masalah ini ketika saya pindah ke Microsoft.EntityFrameworkCore.SqlServer v3.0.0 dan Microsoft.EntityFrameworkCore.Tools v3.0.0
Ketika saya berubah kembali ke v2.2.6 di kedua perpustakaan, kesalahan hilang. Ini lebih merupakan solusi daripada solusi tetapi itu akan membuat Anda bangun dan berjalan sampai masalah diperbaiki.
sumber
Pesan eror:
Solusi:
untuk menginstal "microsoft.entityframeworkcore.sqlserver" dengan NuGet
Diperbaiki:
PS: pastikan Anda telah menggunakan EF pada konten "menggunakan Microsoft.EntityFrameworkCore;"
sumber
Untuk asp.net core versi 2.1, pastikan untuk menambahkan paket berikut untuk memperbaiki masalah. (Setidaknya ini memperbaiki masalah menggunakan SQLite)
Berikut ini adalah referensi dari dokumentasi menggunakan SQLite dengan inti kerangka kerja. https://docs.microsoft.com/en-us/ef/core/get-started/netcore/new-db-sqlite
sumber
Saya mengalami masalah ini, sepertinya saya belum menambahkan paket NuGet yang diperlukan, meskipun saya pikir saya telah melakukannya, pastikan untuk memeriksanya, satu per satu.
sumber
Saat ini bekerja dengan Entity Framework Core 3.1.3. Tidak ada solusi di atas yang memperbaiki masalah saya.
Namun, menginstal paket Microsoft.EntityFrameworkCore.Proxies di proyek saya memperbaiki masalah ini. Sekarang saya dapat mengakses pemanggilan metode UseLazyLoadingProxies () saat mengatur opsi DBContext saya.
Semoga ini bisa membantu seseorang. Lihat artikel berikut:
Pemuatan Malas di EF Core
sumber
Paket Instalasi:
kemudian tambahkan bagian atas kelas Anda:
itu berhasil untuk saya
sumber
Saya harus menggunakan saluran
dalam metode ConfigureServices di Startup.cs
sumber
Menyalin kode berikut ke TodoApi.csproj dari https://github.com/aspnet/Docs/tree/master/aspnetcore/tutorials/first-web-api/sample/TodoApi memecahkan masalah yang sama untuk saya.
Microsoft.AspNetCore. Semua mungkin berlebihan tetapi termasuk EntityFrameworkCore
sumber
Instal Paket NuGet
Microsoft.EntityFrameworkCore.SqlServer
untuk mengatasi masalah ini.Saya menggunakan Core Versi 3.1
sumber