zoukankan      html  css  js  c++  java
  • 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==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 下载并研究性使用

  • 相关阅读:
    sgg_3_hibernate详解
    sgg_2_hibernate开发步骤
    sgg_1_hibernate概述
    cookie
    exchange 普通用户可以创建通讯组
    DC 维护常用工具命令DCdiag
    cp 复制不覆盖
    powershell 结果输出显示为……
    获得用户完整的autodiscover配置文件
    【转】outlook 2016 配置自动发现
  • 原文地址:https://www.cnblogs.com/hellomicro/p/3899888.html
Copyright © 2011-2022 走看看