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

在2sxc 18的TypedCode中如何调用带参数的查询?

在2sxc 18的TypedCode中如何调用带参数的查询?

嘿,很高兴你尝试2sxc 18的TypedCode特性!这个新特性确实让代码更安全、更易维护,但也改变了老的动态查询调用方式,这就是你遇到报错的原因啦。

原来的写法依赖动态对象,而TypedCode模式下App.Typed.Query会返回强类型的查询对象,编译器会帮你校验参数和结果集的类型,所以得换一种方式传参。下面给你两种常用的正确写法:

方式一:直接通过强类型方法传参(推荐)

2sxc 18会自动为你的查询生成强类型的调用方法,参数名和查询里定义的完全对应,这样写不仅清晰,还能避免拼写错误:

// 直接传入查询所需的参数,参数名要和查询里定义的一致
var queryResult = App.Typed.Query.EventDetailsByIds(
    eventid: contactFormRequest["eventid"].ToString(),
    dateid: contactFormRequest["dateid"].ToString()
);

// 获取结果集,强类型结果集无需AsList,直接用First()即可
var eventobject = queryResult.EventInfo.First();
var dateobject = queryResult.DateInfo.First();

方式二:用WithParams构建参数(灵活场景)

如果你的参数是动态生成的,或者需要更灵活的参数传递,可以用WithParams链式调用,最后执行查询:

// 链式添加参数,最后调用Execute()执行查询
var queryResult = App.Typed.Query.EventDetailsByIds
    .WithParams("eventid", contactFormRequest["eventid"].ToString())
    .WithParams("dateid", contactFormRequest["dateid"].ToString())
    .Execute();

// 同样获取结果
var eventobject = queryResult.EventInfo.First();
var dateobject = queryResult.DateInfo.First();

小提示:

如果找不到对应的强类型查询对象,记得去2sxc的App管理界面,找到「Typed Code」选项,点击重新生成代码——2sxc会根据你的查询自动生成对应的强类型类哦。

备注:内容来源于stack exchange,提问作者MBouwman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 15:43:06