You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在EF Core 7中用OwnsOne/OwnsMany将字符串数组以JSON存储到列?

解决方案

问题根源

你误用了OwnsMany来处理List<string>类型的Tags属性。OwnsMany是EF Core专门用于映射实体类型集合的API,而string属于值类型而非实体,EF Core无法将其识别为可被拥有的实体,因此抛出构造函数绑定失败的错误。

正确配置代码

直接针对Tags属性调用ToJson(),就能实现将列表序列化为JSON数组存储的需求:

builder.Property(x => x.Tags)
       .ToJson(); // 把List<string>序列化为JSON数组格式存储
builder.Property(x => x.Name).HasMaxLength(450);

实现效果

配置生效后,Tags属性会被序列化为你期望的JSON数组形式,数据库中对应字段将存储类似["tag#1", "tag2"]的内容,完全匹配你想要的表格展示效果。

内容的提问来源于stack exchange,提问作者Nima Ghomri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 13:49:53