PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Entity Framework Core PostgreSQL json query

Saya pikir Anda sedang mencari sesuatu seperti berikut:

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. Dapatkan waktu dengan zona waktu dari waktu tanpa zona waktu dan nama zona waktu

  2. Evolusi Fault Tolerance di PostgreSQL:Fase Replikasi

  3. Cara terbaik untuk memeriksa nilai kosong atau nol

  4. Buat database menggunakan fungsi tersimpan

  5. Pola &Pengubah Template untuk Pemformatan Numerik di PostgreSQL