如果是多表查询用到ViewModel 那么也需要 IsJson特性
就算你的数据库不支持Json类型,sqlsugar也可以让你支持JSON
public class UnitJsonTest
{
[SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
[SqlSugar.SugarColumn( IsJson = true)]//必填
public Order Order { get; set; }//可以是数组或者JArray JObject
public string Name{get;set;}
}
Db.Insertable(new UnitJsonTest()
{ Name="json1",Order = new Order { Id = 1, Name = "order1" } }).ExecuteCommand();
var list = Db.Queryable<UnitJsonTest>().ToList();我们可以实体用JObject和JArray实现动态类型,当然其他字典什么的只要能序列化的都支持
[SqlSugar.SugarColumn(IsJson = true)]
public JObject Order { get; set; }
JObject o= JObject.FromObject(new { id = 1 });
JArray o2 = JArray.FromObject(new List<object> { new { id=1} });
//只要能序列化的都支持,并不是只支持这2种新功能:
5.1.4.68 版本支持了System.Text.Json里面的对象
支持JObject JArray ,实体 ,集合等类型
[SugarColumn(IsJson=true)]//添加特性
public List<Order> JsonObj{get;set;}| 函数名 | 说明 | 兼容 |
SqlFunc.JsonLike | 模糊查询,兼容所有库,性能一般适合小数据处理 SqlFunc.JsonLike(it.JsonObj,"a") 等于Like '%a%' | 支持所有数据库 |
SqlFunc.JsonField | 注意:大小写要一样 (1)查询Id的值{id:1} SqlFunc.JsonField(it.JsonObj,"id") //返回1 (2)多层级查询,查询id 的值 {obj:{id:"a"}} SqlFunc.JsonField(it.JsonObj,"obj","id") //返回a | 如果不支持请升级 支持 PostgreSQL 支持 SqlServer2017+ 支持 MySql (只能字段) 支持 Oracle (只能字段) Sqlite升级到:5.1.4.148 支持 Sqlite |
SqlFunc.JsonIndex 需要升级到:5.1.4.113+ | 获取json数组的索引对象 SqlFunc.JsonIndex(it.JsonArray,0) 如果是['a','c'] 那么返回a | PostgreSQL MySql SqlServer2017 |
| SqlFunc.JsonParse | 转成JSON类型 | 支持PostgreSQL |
SqlFunc.JsonContainsFieldName | 第一层是否存在id (如果多层级需要结合JsonField) SqlFunc.JsonField("{id:1}","id")//true | 支持PostgreSQL |
SqlFunc.JsonArrayAny(it.Json, "a") 需要升级到:5.1.3.36+ | ["a","b","c"] 这种数组里面是否存在字符串 a 注意:如果是数字可以 1或者"1" 都试一下 也就是 [1,2] 参数用int类型 也就是 ["1","2"] 参数用string类型 注意:如果是多个值可以结合【动态表达式】 | 支持PostgreSQL 支持MySql 支持SqlServer(最新版本) |
SqlFunc.JsonListObjectAny(it.json, "Name", "a") 需要升级到:5.1.3.36+ | [{"name":"a"},{"name":"b"}] 集合中是否存在 name=a的一项 注意:如果是数字可以 1或者"1" 2种类型参数都试一下 注意:如果是多个值可以结合【动态表达式】 | 支持PostgreSQL 支持MySql 支持SqlServer(最新版本) |
| SqlFunc.JsonArrayLength(it.Json) | [1,2,3] 获取数组长度 | 支持PostgreSQ SqlSugar 5.1.4.115 支持MySql 支持 SqlServer |
例如保存用户的一些附带信息,这个时候不需要额外建表
不想用我自带的序列化配置,你可以用自定义类型方式实现json,并且可以支持SqlFunc.json函数
2016 © donet5.comApache Licence 2.0