Мы используем EF Core MySQL (Pomelo) для проекта .NET Core, и у нас есть настройка теста xUnit с использованием базы данных SQLite в памяти.Мы настраиваем столбец JSON, который отлично работает в MySQL, но не работает в наших тестах.Мы попытались добавить ValueConverter, как вы можете видеть ниже, во время тестирования, чтобы SQLite вместо этого рассматривал JsonObject как строку, но, похоже, это полностью игнорируется.Мы также попытались заставить тип столбца «varchar (MAX)».
class FooBar
{
[Column(TypeName = "json")]
public JsonObject<Dictionary<string, object>> Foo { get; set; }
}
class FooBarDbContext : DbContext
{
public DbSet<FooBar> FooBars { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
// only during testing.
builder.Entity<FooBar>().Property(fooBar => fooBar.Foo).HasConversion(
v => v.ToString(),
v => new JsonObject<Dictionary<string, object>>(v)).HasColumnType("varchar(MAX)");
}
}
Как заставить SQLite работать с полем JsonObject?