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)
- Actualicé Microsoft.EntityFrameworkCore a través de nuget
-
ToTable
Microsoft.EntityFrameworkCore.Tools que no funcionó paraToTable
, se desconoce si es necesario. - 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