DAL project:
Install-Package Microsoft.EntityFrameworkCore.Design Install-Package Microsoft.EntityFrameworkCore.SqlServer # if needed for any MSSQL stuff in your DbContext
Add Models
Add a DbContext
public class MyDbContext : DbContext
{
public MyDbContext()
{
}
public MyDbContext(DbContextOptions<MyDbContext> options) : base(options)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(Config.ConnectionString);
}
public static MyDbContext Create()
{
var optionsBuilder = new DbContextOptionsBuilder<MyDbContext>();
optionsBuilder.UseSqlServer(Config.ConnectionString);
return (new MyDbContext(optionsBuilder.Options));
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.RemovePluralizingTableNameConvention();
base.OnModelCreating(modelBuilder);
}
public DbSet<Parent> Parents { get; set; }
public DbSet<Child> Children { get; set; }
}
Here's a RemovePluralizingTableNameConvention() that works for .NET Core:
public static class ModelBuilderExtensions
{
public static void RemovePluralizingTableNameConvention(this ModelBuilder modelBuilder)
{
foreach (IMutableEntityType entity in modelBuilder.Model.GetEntityTypes())
{
#if (NETSTANDARD2_0 || NETSTANDARD2_1 || NETCOREAPP2_0 || NETCOREAPP2_1 || NETCOREAPP2_2)
entity.Relational().TableName = entity.DisplayName();
#else // for 3.0 and onwards
entity.SetTableName(entity.DisplayName());
#endif
}
}
}
PM> dotnet tool update –global dotnet-ef
dotnet ef migrations add InitialCreate --project MyProject.DAL
dotnet ef database update --project Mixer.DAL
Main project:
Add ViewModels Add Profiles Add Specifications