EntityTypeBuilder tidak berisi definisi untuk Kemeja di EF Core

Saya memiliki ini contoh kode:

using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Models;

namespace MySampleNamespace
{
    public class MyDbContext : DbContext
    {
        public MyDbContext(DbContextOptions<MyDbContext> options)
            : base(options)
        {
        }

        public DbSet<User> Users { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            new UserMap(modelBuilder.Entity<User>());
        }

        public class UserMap
        {
            public UserMap(EntityTypeBuilder<User> entityBuilder)
            {
                entityBuilder.ToTable("User");
                entityBuilder.Property(s => s.Username).HasMaxLength(15).IsRequired();
            }
        }
    }
}

Saya menguji beberapa contoh dari MS web, tapi aku bisa't menemukan Kemeja metode. Dalam contoh, saya telah memeriksa apa Usings dan hanya Menggunakan contoh adalah Microsoft.EntityFrameworkCore selain dari proyek kelas untuk model yang ia gunakan. Ini berubah? Bagaimana saya melakukan ini sekarang?

Mengomentari pertanyaan (2)

Menginstal Microsoft.EntityFrameworkCore.Relasional adalah solusi yang tepat, karena kata Ivan.

Komentar (2)

Ivan & Mardoxx benar.

Saya mencoba untuk hanya menginstal Microsoft.EntityFrameworkCore.Alat kemudian mendapat kesalahan ini:

Terdeteksi paket downgrade: Microsoft.EntityFrameworkCore dari 2.1.4 untuk 2.1.1. Referensi paket langsung dari proyek untuk memilih versi yang berbeda. -> Microsoft.EntityFrameworkCore.Alat 2.1.4 -> Microsoft.EntityFrameworkCore.Desain 2.1.4 -> Microsoft.EntityFrameworkCore.Relasional 2.1.4 -> Microsoft.EntityFrameworkCore (>= 2.1.4) -> Microsoft.EntityFrameworkCore (>= 2.1.1)

  1. Saya upgrade Microsoft.EntityFrameworkCore via nuget
  2. Saya tidak menginstal Microsoft.EntityFrameworkCore.Alat-alat yang tidak't bekerja untuk Kemeja , tidak diketahui apakah ini bahkan diperlukan
  3. Yang saya lakukan kemudian instal Microsoft.EntityFrameworkCore.Relasional dan sekarang menyelesaikan
Komentar (1)

Aku punya masalah ini, tetapi tidak perlu untuk menginstal:

Microsoft.EntityFrameworkCore.Relational

Aku hanya keluar VS 2017 dan dibuka kembali solusi saya. Saya telah mengikuti paket NuGet yang diinstal:

Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Tools

Dan berikut CLI Alat Referensi:

Microsoft.EntityFrameworkCore.Tools.DotNet
Komentar (0)

Porting dari EF6 untuk EFCore, kita punya masalah ini. Tujuan kita adalah .HasKey sekarang kembali KeyBuilder dan .Kemeja doesn't beroperasi di atasnya. Begitu membalikkan yang bekerja.

Ie. Adalah:

mp.HasKey(m => m.Id)
  .ToTable("Table")

Menjadi:

mp.ToTable("Table")
  .HasKey(m => m.Id);
Komentar (1)

perlu menambahkan paket (nuget) Microsoft.EntityFrameworkCore.SqlServer karena ini adalah MS Sql metode

Komentar (0)

Tergantung pada anda .Net Core versi yang anda gunakan. Microsoft.EntityFrameworkCore.Alat-alat.DotNet hanya mendukung .NetStandard >= 2.0.

Jika anda .Net Core versi 4.6.1, update Microsoft.EntityFrameworkCore untuk 2.0.0-preview1-final, bersama dengan terkait EntityFramework Dll, kemudian tutup Visual Studio 2017 dan membuka kembali.

Komentar (0)