LINQPad 4 初次使用心得
最近学习EntityFramework,于是接触了LinqPad这款享誉已久的软件,深感相见恨晚。软件具体不多做介绍了,只简单介绍下使用方法。
数据库操作
添加数据库连接
1,首先通过点击Add connection打开Choose Data Context窗口
2,选择Defalt(LINQ to SQL)
3,添加数据库连接信息

4,点击OK后,会显示出数据库的表的列表,说明数据库连接创建成功

表达式操作
数据库连接成功后
首先在Query窗口的Connection中选择你要进行过操作的数据库,并且Language选择C# Expression
之后就可以通过LINQ表达式进行数据库查询操作了

1,查询一张表的所有内容
直接输入表名就可以了
比如查询所有菜单,直接使用如下代码即可
MenuInfoes
显示结果如下:

2,使用dump
使用dump可以将输出结果分类显示
MenuInfoes.Dump("所有菜单")
显示结果如下:

3,LINQ操作示例
这里毕竟是软件的介绍,LINQ语法不多介绍了。所有的LINQ语法在LINQPad里都可以使用。
这里简单给出一些示例:
**使用type筛选后,按照价格排序
MenuInfoes.Where(mi=>mi.Type==).OrderBy(mi=>mi.Price)
结果如下:

**所有点菜情况如下
| Id | Date | EmployeeId | MenuId | Count |
| 1 | 2014/2/5 | 1 | 1 | 4 |
| 2 | 2014/2/5 | 1 | 2 | 16 |
| 3 | 2014/2/5 | 1 | 1 | 5 |
| 4 | 2014/2/5 | 1 | 1 | 1 |
那么想要获取每种菜品的总份数,用如下代码
OrderInfoes
.GroupBy(oi=>oi.MenuId)
.Select(g=>new
{
MenuId=g.Key,
SumCount=g.Sum(oi=>oi.Count)
})
结果如下:

代码段操作
LINQPad不仅仅可以通过表达式操作数据库,更可以通过代码段执行任何C#的代码
首先将Language改为C# Program
**简单的输出处理
void Main()
{
DateTime.Now.Dump("Datetime now");
}
输出结果如下:

**LINQPad还可以导入第三方库,甚至可以在程序内使用nuget导入
在query窗口中按F4打开Query Properties窗口,在该窗口可以添加任何本地的第三方程序集
通过点击Add Nuget打开Nuget窗口,然后搜索json.net

之后通过点击Add To Query下载并添加程序集
返回Query Properties后可以发现Json.net已经被添加了

尝试下面的代码:
public class Student
{
public int Id { get; set; }
public Gender Gender { get; set; }
} public enum Gender
{
Male,
Female
} void Main()
{
var student=new Student{
Id=,
Gender= Gender.Male
}; JsonConvert.SerializeObject(student).Dump("serialize student");
}
显示结果为:

最后在LINQPad中写一个稍微复杂的网络操作的例子
public class Weather
{
public Weatherinfo weatherinfo { get; set; }
} public class Weatherinfo
{
public string city { get; set; }
public string cityid { get; set; }
public string temp { get; set; }
public string WD { get; set; }
public string WS { get; set; }
public string SD { get; set; }
public string WSE { get; set; }
public string time { get; set; }
public string isRadar { get; set; }
public string Radar { get; set; }
} void Main()
{
var resetEvent=new AutoResetEvent(false);
var client=new HttpClient();
var rst= client.GetStringAsync("http://www.weather.com.cn/data/sk/101110101.html");
rst.ContinueWith(s=>
{
if(s.Exception==null)
{
var obj=JsonConvert.DeserializeObject<Weather>(s.Result);
Console.WriteLine(obj);
}
else{
Console.WriteLine(s.Exception);
}
resetEvent.Set();
}); resetEvent.WaitOne();
}
显示结果如下:

官方下载地址:http://www.linqpad.net/
免费版没有智能提示,Premium Edition收费。
希望大家多多支持正版,或者在http://download.csdn.net/detail/xnonx/7720177 下载并研究性使用
LINQPad 4 初次使用心得的更多相关文章
- 201671010142 <java程序设计>初次学习心得与感悟
从开始对JDK的配置就遇到了问题,从这点就可以知道自己知识的薄弱.又知道了在控制台下一些常用命令的掌握.对知识的理解挺艰难,比如遇到一个新的问题就不知道该从哪里入手,有时候还不知道到底问题是啥.接受能 ...
- 自我介绍和Github初次使用心得
姓名:许洪科 班级:网络工程142 学号:1413042047 爱好:足球 编写过的程序:0 编写过的代码:几乎为0(大多数为网上直接复制的) Github注册过程:. 1:进入Github网站后点击 ...
- (LaTex)CTex的初次使用心得及入门教程
摘要 最近要发论文了,被知乎里人推荐使用论文编译软件(CTex.LaTex和Overleaf之类),瞬间感觉自己用Word简直Out了(书读少). 学校里也听说过LaTex,不过因为当时没怎么写过论文 ...
- AutoMapper 初次使用心得
本例以asp.net webform为例: 结构: 主要代码:AutoMapperConfig 类 public class AutoMapperConfig { public static void ...
- .Net 常用开发工具
,net常用开发工具 LinqPad使用 LinqPad连接Oracle 使用 LINQPad 将linq转换为 lambda表达式 或者 SQL语句 LINQPad 4 初次使用心得 一.双击 二. ...
- 手机web——自适应网页设计(html/css控制)
一. 允许网页宽度自动调整: "自适应网页设计"到底是怎么做到的? 其实并不难. 首先,在网页代码的头部,加入一行viewport元标签. <meta name=" ...
- 【转】手机web——自适应网页设计(html/css控制)
手机web——自适应网页设计(html/css控制) 就目前形势来看,Web App 正是眼下的一个趋势和潮流,但是,对于Web App的设计可能大家有的不是很了解,下面就将整理好的网页设计的技巧奉献 ...
- 手机web——自适应网页设计(html/css控制) - 51CTO.COM
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
- 手机web——自适应网页设计(html/css控制)【转】
一. 允许网页宽度自动调整: "自适应网页设计"到底是怎么做到的?其实并不难. 首先,在网页代码的头部,加入一行viewport元标签. <meta name="v ...
随机推荐
- IOS-网络(数据安全:MD5加密)
// // ViewController.m // IOS_0129_HTTP请求 // // Created by ma c on 16/1/29. // Copyright © 2016年 博文科 ...
- js控制easyui datagrid列的显示和隐藏
easyui datagrid 列隐藏和显示 $('#grid').datagrid('hideColumn','列field'); //把hideColumn换成showColumn 即为显示列
- javascript 与vbscript 互相调用
在 VBScript 的function 中可以直接编写 javascript 代码 但是只能返回一个字符串给变量 <html><head> <script type=& ...
- python将字符转换为字典
参考文章Python 如何将字符串转为字典 注意: 使用json的时候一定要注意是loads而不是load 即:user_dict = json.loads(user_info) 注意: 用eval( ...
- L3-011 直捣黄龙 (30 分)
本题是一部战争大片 —— 你需要从己方大本营出发,一路攻城略地杀到敌方大本营.首先时间就是生命,所以你必须选择合适的路径,以最快的速度占领敌方大本营.当这样的路径不唯一时,要求选择可以沿途解放最多城镇 ...
- 【java基础】ThreadLocal的实现原理
[一]:ThreadLocal对象的大体实现原理===>当前线程对象有一个ThreadLocal.ThreadLocalMap属性.===>声明的ThreadLocal对象最终存储在当前线 ...
- Jacoco+Jenkines小白之路
Jacoco+Jenkines小白之路 最近工作中正在推广jacoco的增量覆盖率的统计,想学习一波,纯粹采坑中,适合小白学习jacoco. 一.代码覆盖率 引入代码覆盖率 : 代码覆盖率是指对现有代 ...
- oracle之 监听器无法启动的几个原因总结
1)防火墙没关 2)/etc/hosts配置问题,有可能误删了127.0.0.1的默认记录,添加默认记录 [root@rac02 ~]# cat /etc/hosts127.0.0.1 localho ...
- sorting--codility
lesson 6: sorting 1. Distinct 2. Triangle 2. MaxProductOfThree 4. NumberOfDiscIntersections lesson 6 ...
- windows server 2012 AD 域和站点部署系列
http://blog.csdn.net/ronsarah/article/category/1495599 http://blog.csdn.net/david_520042/article/cat ...