在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
相关产品推荐
相关产品推荐

