al usar los comandos de Entity Framework ("7.0.0-beta1").
cuando se ejecuta
k ef migracion agregar InitialCreate
Estoy recibiendo errores.
[Solución]
Intento mover mi archivo de clase (donde se crea DbContext) al proyecto principal desde una biblioteca de clases separada y todo funciona como se espera.
así que el problema real es cuando se usa DbContext en una biblioteca de clases separada.
mi archivo dbcontext
public class DbTables : DbContext
{
public DbSet<class_name> class_name_alias { get; set; }
private static bool _created = false;
public DbTables()
{
if (_created)
{
Database.AsRelational().ApplyMigrations();
_created = true;
}
}
protected override void OnConfiguring(DbContextOptions options)
{
options.UseSqlServer(@"Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=app_db;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False");
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
Si crea un DBContext en una biblioteca de clases, para crear la migración debe declarar el comando ef en el project.json de esta biblioteca de clases. y ejecute el comando k ef para este proyecto.
{
"version": "1.0.0-*",
"dependencies": {
"EntityFramework.SqlServer": "7.0.0-beta1",
"EntityFramework.Commands": "7.0.0-beta1"
},
"commands": {
"ef": "EntityFramework.Commands"
},
"frameworks" : {
"aspnet50" : {
"dependencies": {
}
},
"aspnetcore50" : {
"dependencies": {
"System.Runtime": "4.0.20-beta-22231"
}
}
}
}
Debe anular el método OnConfiguring para configurar una cadena de conexión
protected override void OnConfiguring(DbContextOptions options)
{
options.UseSqlServer(@"Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=app_db;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False");
}