可以使用 Entity Framework Core 的 Linq 语法来查询 MySQL 的 JSON 字段。

假设有以下的 Order 模型:

public class Order
{
    public int Id { get; set; }
    public string CustomerName { get; set; }
    public string Items { get; set; }
}

其中 Items 字段是一个 JSON 字符串,可以使用 Newtonsoft.Json 库将其转换为对象:

public class Item
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Order
{
    public int Id { get; set; }
    public string CustomerName { get; set; }
    public List<Item> Items { get; set; }
}

public class OrderContext : DbContext
{
    public DbSet<Order> Orders { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Order>()
            .Property(o => o.Items)
            .HasConversion(
                v => JsonConvert.SerializeObject(v),
                v => JsonConvert.DeserializeObject<List<Item>>(v));
    }
}

然后可以使用 Linq 语法查询包含 ID=1 的 Item:

var orders = context.Orders.Where(o => o.Items.Any(i => i.Id == 1)).ToList();

这样就可以查询出 Order 表中 Items 字段包含 ID=1 的数据了。

使用 Entity Framework Core 查询 MySQL JSON 字段 - 示例:查找包含特定 ID 的 Items

原文地址: https://www.cveoy.top/t/topic/jqnE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录