最近學習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==1).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=1, 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(5000); }
顯示結果如下:
官方下載地址:http://www.linqpad.net/
免費版沒有智能提示,Premium Edition收費。
希望大家多多支持正版,或者在http://download.csdn.net/detail/xnonx/7720177 下載並研究性使用