PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Truy vấn json của Entity Framework Core PostgreSQL

Tôi nghĩ bạn đang tìm kiếm thứ gì đó giống như sau:

class Program
{
    static async Task Main(string[] args)
    {
        await using var ctx = new BlogContext();
        await ctx.Database.EnsureDeletedAsync();
        await ctx.Database.EnsureCreatedAsync();

        var lang = "es";

        var collection = await ctx.Settings
            .Where(s => EF.Functions.JsonExists(s.SettingValue, lang))
            .Select(s => new
            {
                s.SettingId,
                s.SettingParentId,
                SettingValue = s.SettingValue.GetProperty(lang).GetString()
            })
            .ToListAsync();

        foreach (var i in collection)
        {
            Console.WriteLine($"{i.SettingId}: {i.SettingValue}");
        }
    }
}

public class BlogContext : DbContext
{
    public DbSet<Setting> Settings { get; set; }

    static ILoggerFactory ContextLoggerFactory
        => LoggerFactory.Create(b => b.AddConsole().AddFilter("", LogLevel.Information));

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        => optionsBuilder
            .UseNpgsql(@"Host=localhost;Username=test;Password=test")
            .EnableSensitiveDataLogging()
            .UseLoggerFactory(ContextLoggerFactory);

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Setting>().HasData(new Setting
        {
            SettingId = "1",
            SettingValue = JsonDocument.Parse(@"{ ""es"" : ""valor""}").RootElement
        });
    }
}

public class Setting
{
    public string SettingId { get; set; }
    public string SettingParentId { get; set; }
    public JsonElement SettingValue { get; set; }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không phân biệt chữ hoa chữ thường như (ilike) trong Datamapper với Postgresql

  2. Có thể thay đổi thiết kế bảng PostgreSQL bằng LibreOffice Base không?

  3. Ghi đè chuỗi nối tiếp trong PostgreSql bằng Entity Framework (C #)

  4. Rails:quyền bị từ chối đối với quan hệ schema_migrations

  5. TẠO CHẾ ĐỘ XEM chỉ định nhiều tên cột hơn cột