name framework entity-framework entity-framework-core

entity-framework - name - entity framework core views



EntityTypeBuilder no contiene una definiciĆ³n para ToTable en EF Core (5)

Tengo este código de ejemplo:

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(); } } } }

Estaba probando un ejemplo del sitio web de MS, pero no puedo encontrar el método ToTable. En el ejemplo, verifiqué cuáles son los Usos y el único que usó el ejemplo fue Microsoft.EntityFrameworkCore aparte del proyecto de clase para el modelo que estaba usando. ¿Esto ha cambiado? ¿Cómo hago esto ahora?


Dependiendo de su versión .Net Core que esté utilizando. Microsoft.EntityFrameworkCore.Tools.DotNet solo admite .NetStandard> = 2.0.

Si su versión .Net Core es 4.6.1, actualice Microsoft.EntityFrameworkCore a 2.0.0-preview1-final, junto con los DLL de EntityFramework relacionados, luego cierre Visual Studio 2017 y vuelva a abrir.


Instalar Microsoft.EntityFrameworkCore.Relational es la solución correcta, como dice Ivan.


Ivan y Mardoxx tienen razón.

Intenté instalar Microsoft.EntityFrameworkCore.Tools y obtuve este error:

Se detectó una degradación del paquete: Microsoft.EntityFrameworkCore de 2.1.4 a 2.1.1. Consulte el paquete directamente desde el proyecto para seleccionar una versión diferente. -> Microsoft.EntityFrameworkCore.Tools 2.1.4 -> Microsoft.EntityFrameworkCore.Design 2.1.4 -> Microsoft.EntityFrameworkCore.Relational 2.1.4 -> Microsoft.EntityFrameworkCore (> = 2.1.4) -> Microsoft.EntityFrameworkCore (> = 2.1.1)

  1. Actualicé Microsoft.EntityFrameworkCore a través de nuget
  2. ToTable Microsoft.EntityFrameworkCore.Tools que no funcionó para ToTable , se desconoce si es necesario.
  3. Entonces instalé Microsoft.EntityFrameworkCore.Relational y ahora se resuelve

Trasladando de EF6 a EFCore, tuvimos este problema. Nuestra causa fue .HasKey ahora devuelve un KeyBuilder y el .ToTable no funciona en él. Así que revertir eso funcionó.

Es decir. Estaba:

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

Convirtió:

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


Tuve este problema, pero no necesité instalar:

Microsoft.EntityFrameworkCore.Relational

Simplemente salí de VS 2017 y volví a abrir mi solución. Tuve los siguientes paquetes de NuGet instalados:

Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Tools

Y la siguiente referencia de la herramienta CLI:

Microsoft.EntityFrameworkCore.Tools.DotNet