Я хочу заполнить некоторые данные, используя EntityFramework. net core 3.1, и я столкнулся с проблемой:
У меня есть две SQL таблицы (так, две DbSet <>):
public virtual DbSet<TableA> TableA { get; set; }
public virtual DbSet<TableB> TableB { get; set; }
Таблица A имеет такую структуру:
[Key]
public int Id { get; set; } // PK
public string EnglishText { get; set; } // some value
Таблица B имеет такую структуру:
[Key]
public int Id { get; set; } // PK
public int TableAId { get; set; } // FK to Table A
public string TranslatedText { get; set; } // some value
Для заполнения данных для таблицы A я использую OnModelCreating (ModelBuilder modelBuilder) метод в DBContext:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
// Seed TableA
modelBuilder.Entity<TableA>().HasData(
new TableA { Id = 1, EnglishText = "first data"}
);
}
Затем я хочу заполнить таблицу B, только если она не содержит запись, которая ссылается на TableA (через FK), я не уверен, как сделайте это в методе OnModelCreating.
Я думаю, что мне нужно что-то вроде:
modelBuilder.Entity<TableB>().HasData(var X = new TableB{...}).Where([X.TableAId is not in TableA])
Если у кого-то есть идея или она может указать мне направление, это было бы очень признательно .