Существуют классы GropsAndProducts, Groups, Products:
public class GropsAndProducts
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int Id { get; set; }
[ForeignKey("Products")]
public int ProductId { get; set; }
[ForeignKey("Groups")]
public int GroupId { get; set; }
public Groups Groups { get; set; }
public Products Products { get; set; }
}
public class Groups
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int Id { get; set; }
[Required]
public string Title { get; set; }
[Required]
public string Discription { get; set; }
public List<GropsAndProducts> groupAndProducts { get; set; }
}
public class Products
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int Id { get; set; }
[Required]
public string Title { get; set; }
// Еденица измерения
[Required]
public string Unit { get; set; }
[Required]
public int Count { get; set; }
[Required]
public int Price { get; set; }
[Required]
public int Discount { get; set; }
public string Discription { get; set; }
public List<GropsAndProducts> groupAndProducts { get; set; }
}
К ним есть контекст:
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using MySite.Models;
using System.Data;
namespace MySite.Data
{
public class DbProductsAndGroupsContext : DbContext
{
public DbProductsAndGroupsContext(DbContextOptions<DbProductsAndGroupsContext> option)
: base (option)
{
}
public DbSet<Products> products;
public DbSet<Groups> groups;
public DbSet<GropsAndProducts> gropsAndProducts;
}
}
А так же настройка:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<DbProductsAndGroupsContext>(option =>
option.UseMySql(
Configuration.GetConnectionString("DefaultConnection"), x=> x.MigrationsHistoryTable("__MyMigrationsHistory", "mySchema"))
);
services.AddDbContext<DbUserContex>(options =>
options.UseMySql(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<Users>()
.AddEntityFrameworkStores<DbUserContex>();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
Теперь о проблеме:
Первая миграция (От UserIdentity) выполнилась нормально (т е создалась новая БД а так же таблицы с записями). Но после того как я создал второй контекст и пытаюсь выполнить команду (в менеджере пакетов) EntityFrameworkCore\Add-Migration -name:asdf -context:DbProductsAndGroupsContext, то добавляется пустая миграция. Почему может так быть??? Буду рад любой информации.
Причина в том что надо было писать в контексте не так:
public DbSet<Products> products;
public DbSet<Groups> groups;
public DbSet<GropsAndProducts> gropsAndProducts;
А так:
public DbSet<Products> products { get; set; }
public DbSet<Groups> groups { get; set; }
public DbSet<GropsAndProducts> gropsAndProducts { get; set; }
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости