-
Notifications
You must be signed in to change notification settings - Fork 864
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
json字段查询 #1881
Comments
不支持动态传参,jsonMap类型为Dictionary<string, object?> [FreeSql.DataAnnotations.JsonMap] var sql=_repository.FreeSql.Queryable().Where(t => t.ExtraProperties["Cpu"]== "32GB").ToSql(); 报错: 2024-09-10 14:59:14.091 +08:00 [ERR] 未实现函数表达式 t.ExtraProperties.get_Item("Cpu") 解析 |
动态这种情况,需要定义类似 SqlExt.xxx 解析 |
表达式树没有对应的json字段查询
https://freesql.net/guide/expression-function.html
例如下图ExtraProperties字段为json存储,json里对应的字段为Cpu,Ram,Price三个动态字段
![image](https://private-user-images.githubusercontent.com/3213405/365908675-a0136868-65c8-4e67-8499-2acd86a3084b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NDQyMzQsIm5iZiI6MTczOTc0MzkzNCwicGF0aCI6Ii8zMjEzNDA1LzM2NTkwODY3NS1hMDEzNjg2OC02NWM4LTRlNjctODQ5OS0yYWNkODZhMzA4NGIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMjIxMjE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjcxZTQ2M2UwNGJlYzQ5NzYwZWExN2Q4YmI2NzQxNWMxZTFmMGZiNDE3YjM0MTFlYjZiMWJjMTM4YTk3NTU3NSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.Dz-NdEpiMh1uB7I9SOJ2DrrI5Sdl1q63rko2ftnROQE)
declare @jsontable table(userName varchar(50),ExtraProperties varchar(max))
insert into @jsontable values('name1','{"Cpu":"Intel I7","Ram":"32GB","Price":"1999"}')
insert into @jsontable values('name2','{"Cpu":"Intel I3","Ram":"16GB","Price":"1699"}')
select * from @jsontable
例如要模糊搜索内存为32的数据行对应sql句语如下
![image](https://private-user-images.githubusercontent.com/3213405/365909031-37225c2b-381d-4508-afe4-a03940fa9651.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NDQyMzQsIm5iZiI6MTczOTc0MzkzNCwicGF0aCI6Ii8zMjEzNDA1LzM2NTkwOTAzMS0zNzIyNWMyYi0zODFkLTQ1MDgtYWZlNC1hMDM5NDBmYTk2NTEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMjIxMjE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OGE2ZjRkMDVmNWUyYjFmMTk2OTgyNDZiNjEwZjZkYWQxNjcyODFjNTUxMmFmZTI2ZmIzM2E2ZDg1OGJmZjBiZiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.vIE9DKXPSmZPCmLP8VX6K4ckIC4EPw6P8hd3s0JvhxE)
select * from @jsontable where JSON_VALUE(ExtraProperties, N'$.Ram') LIKE '%32%'
能否加入到SqlExt里面
The text was updated successfully, but these errors were encountered: