При попытке заполнить таблицу базы данных SQL я получаю сообщение об ошибке. Метод или операция не реализованы в этой строке кода:
await context.SaveChangesAsync();
Это окружающий код:
if (!context.ProductBrands.Any())
{
var brandsData =
File.ReadAllText(path + @"\SeedData\brands.json");
var brands = JsonSerializer.Deserialize<List<ProductBrand>>(brandsData);
foreach (var item in brands)
{
context.ProductBrands.Add(item);
}
await context.SaveChangesAsync();
}
Так выглядит таблица SQL:
Это файл DbContext:
public class StoreContext : DbContext
{
public StoreContext(DbContextOptions<StoreContext> options) : base(options)
{}
public DbSet<Product> Products { get; set; }
public DbSet<ProductBrand> ProductBrands { get; set; }
public DbSet<ProductType> ProductTypes { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Product>().ToTable("Products");
modelBuilder.Entity<Product>().Property(e => e.Id).ValueGeneratedNever();
base.OnModelCreating(modelBuilder);
modelBuilder.ApplyConfigurationsFromAssembly(Assembly.GetExecutingAssembly());
if (Database.ProviderName == "Microsoft.EntityFrameworkCore.Sqlite")
{
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
{
var properties = entityType.ClrType.GetProperties().Where(p => p.PropertyType == typeof(decimal));
var dateTimeProperties = entityType.ClrType.GetProperties()
.Where(p => p.PropertyType == typeof(DateTimeOffset));
foreach (var property in properties)
{
modelBuilder.Entity(entityType.Name).Property(property.Name).HasConversion<double>();
}
foreach (var property in dateTimeProperties)
{
modelBuilder.Entity(entityType.Name).Property(property.Name)
.HasConversion(new DateTimeOffsetToBinaryConverter());
}
}
}
}
}