• Linq初体验


    Hello,我又回来了,懒懒的好多日没有写博客的日子。

    今天给大家讲讲C#中的Linq用法。

    要学会使用Linq的话就一定要理解三个前置知识(委托、泛型、Lambda);

    好了,说到这里,估计学C#的很多小伙伴就蒙了。

    但是这三个点非常重要,是贯穿了整个C#体系的精髓部分。

    本节是专门讲讲Linq是怎么用,以及为什么这么用。

    Linq一般常见的用法是结合EF使用的,例如下面这段代码:

    Models dbContext = new Models();
    var projectInfoCount = dbContext.S_I_PROJECTINFO.ToList().Count;
    var projectInfo = dbContext.S_I_PROJECTINFO.Where(p => p.NAME.Contains("钢铁")).Select(p=>p.NAME+ "	" + p.CODE).ToList();
    var p2 = dbContext.S_I_PROJECTINFO.Select(p => p.CODE + " " + p.NAME + " " + p.MODECODE).Where(p => p.Contains("钢铁")).ToList();

    首先Models是我建立的模型对象,这个模型对象你可以直接理解成数据库;

    S_I_PROJECTINFO是数据库中的一张表,通过Tolist()方法可以将表中的数据全部以List对象返回;

    也可以像SQL语句中,使用where和select这种通用查询和限制方法,只不过使用时内部的参数一般为委托;

    例如在where限制方法中,接受的第一个参数为Func委托,委托方法的第一个参数是S_I_PROJECTINFOl类型,返回值是bool类型;

     

     因此直接传入Lambda表达式p=>p.NAME.Contains("钢铁");

    然后像使用Linq的语句,一般使用var声明即可,可以缩短代码以及快速编码。

    由于在调用的时候就已经明确了泛型变量为S_I_PROJECTINFO所以其余的泛型方法都可以不用显示写上。

    怎么生成这个EF模型对象的呢(操作环境为VS2017)?

    首先在项目中新建一个文件夹(因为EF生成的文件比较多,放一个文件夹方便管理)

     右键点击 添加 -> 新建项

    选择“ADO.NET实体数据模型”,然后命名;

    点击“来自数据库的EF设计器”

     刚开始是没有连接信息的,点击“新建链接”

    填好信息,然后测试连接通过即可。

    然后在上一步界面直接点击完成

     在这个界面中,选择你需要在该模型对象中包含哪些表,完成即可。

  • 相关阅读:
    SQLServer: 解决“错误15023:当前数据库中已存在用户或角色
    DEV界面皮肤
    模拟业务最小测试用例
    POJ 2503 Babelfish(map)
    POJ 2001 Shortest Prefixes
    洛谷 P2672 推销员
    POJ 2104 K-th Number && 洛谷 P3834 【模板】可持久化线段树 1(主席树)
    洛谷 P1589 泥泞路
    HDU 6183 Color it(动态开点线段树)
    POJ 2482 Stars in Your Window
  • 原文地址:https://www.cnblogs.com/LeeSki/p/12144780.html
Copyright © 2020-2023  润新知