6K Star 11.7K Fork 4K

GVPdotNET China / Furion

 / 详情

粘土对象多了一层嵌套

已完成
创建于  
2021-10-09 10:44

💢 特别说明:如果 Issue 没有严格按照模板编写且未提供测试源码下载或 Git 测试仓库地址,则视为无效 Issue

Furion 版本号

2.19.1


Web 项目类型

  • WebApi
  • Mvc
  • Razor Pages
  • Blazor Server
  • MinApp

描述你的问题

粘土对象多了一层嵌套
普通匿名对象只有一层

粘土推向有两层

测试:
//用匿名对象执行正常
var dataTable = await "SELECT * FROM myTable WHERE id=@id".SqlQueryAsync(new {id = 1});

//用粘土对象执行提示“Parameter count mismatch.”
dynamic model = Clay.Object(new {id = 1});
var dataTable = await "SELECT * FROM myTable WHERE id=@id".SqlQueryAsync(model.Solidify());


异常堆栈信息

无异常


测试项目代码

⚠⚠ 必须提供完整可运行且包含错误的 Git 仓库 DEMO,DEMO 提供最简单的错误逻辑代码,否则不予处理。⚠⚠

您的代码下载地址?
https://gitee.com/dotnetchina/Furion


数据库信息

  • Sqlite
  • SqlServer
  • Mysql
  • Oracle
  • PGSql
  • Firebird
  • Cosmos

期待结果

请问用什么方法能将粘土对象转换成常规的匿名对象?(对调粘土对象外面多包裹的一层)


关注 Furion

如果您喜欢或正使用 Furion,Furion 也能帮助到您,可以考虑给 Furion 一个 Star。✨


评论 (5)

inypeacock 创建了任务
inypeacock 关联仓库设置为dotNET China/Furion
展开全部操作日志

我现在的解决办法:
dynamic model = Clay.Object(new {id = 1});
var obj = JSON.Deserialize<Dictionary<string, object>>(model.Solidify().ToString());
var dataTable = await "SELECT * FROM myTable WHERE id=@id".SqlQueryAsync(obj);

dynamic model = Clay.Object(new {id = 1});
var dataTable = await "SELECT * FROM myTable WHERE id=@id".SqlQueryAsync((object)model);

即可。

直接使用粘土对象提示错误:
The CLR type System.Xml.Linq.XElement isn't natively supported by Npgsql or your PostgreSQL. To use it with a PostgreSQL composite you need to specify DataTypeName or to map it, please refer to the documentation.

任我行 修改了描述
任我行 修改了描述
百小僧 任务状态待办的 修改为进行中
百小僧 负责人设置为百小僧
百小僧 添加了
 
漏洞
标签
百小僧 里程碑设置为Furion 2021
百小僧 关联分支设置为net6
百小僧 计划截止日期设置为2021-11-22
百小僧 计划开始日期设置为2021-11-22

这个问题直到现在才重现出现,已经修正,下个版本发布。

百小僧 任务状态进行中 修改为已完成

🎉 修复 Sql 命令参数传入 Clay 类型异常问题 close #I4D21Q:粘土对象多了一层嵌套

-----来自 commit 24294d0

百小僧 关联分支net6 修改为未关联

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
974299 monksoul 1578937227
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

搜索帮助