如何在LINQPad中为多SQL语句的结果网格标签页自定义命名?
给LINQPad多查询结果标签页自定义命名的方法
嘿,这个需求我之前也折腾过,LINQPad确实有内置的方式解决,不用再用那种会被当成存储过程的写法啦!
核心是用LINQPad自带的Util.WithLabel()方法,它专门用来给查询结果的标签页指定自定义名称。下面分场景说具体用法:
1. 执行原生SQL语句的正确姿势
如果你当前用的是纯SQL模式,先切换到C# Statement或者C# Expression模式(LINQPad顶部下拉菜单里就能选),然后用以下写法:
// 给第一个结果标签命名为"Companies" Util.WithLabel("Companies").ExecuteQuery<dynamic>("SELECT * FROM Companies"); // 给第二个结果标签命名为"Users" Util.WithLabel("Users").ExecuteQuery<dynamic>("SELECT * FROM Users");
ExecuteQuery<dynamic>会执行你的SQL并返回动态类型结果,适配任意表结构;- 如果你已经在LINQPad里导入了数据库模型(有对应的实体类),可以把
dynamic换成具体类名,比如Company,这样结果网格会显示更精准的类型信息:Util.WithLabel("Companies").ExecuteQuery<Company>("SELECT * FROM Companies");
2. 针对LINQ查询的扩展(额外补充)
如果是写LINQ查询而非原生SQL,用法更简洁,直接链式调用WithLabel()就行:
// LINQ to SQL示例 Companies.WithLabel("Companies").Dump(); Users.WithLabel("Users").Dump();
之前你尝试的["Companies"] SELECT * FROM Companies写法,LINQPad会把它识别为调用名为Companies的存储过程,所以才不符合预期,换成上面的内置方法就完全没问题啦。
内容的提问来源于stack exchange,提问作者Will
相关产品推荐
相关产品推荐

