• EF数据库优先模式(三)


          今天2018年4月1日,呼叫王伟,81192,收到请返航!

    接上次说,本节将LINQ以及lambda表达式

    LINQ是C#里面针对SQL Server特有的数据访问操作方法,通俗一点说就是类似于写SQL语句一样,都是对数据库进行操作

    var temp = (from pt in db.T_UserInfo
                                select pt
                              ).ToList();

    上述代码就是LINQ的查询操作,下面是写LINQ的基本方式,这个有很多例子可以看,就不再一一列举了

    var temp=from pt in table
                   select pt
                   where pt.colums>条件
                   orderby pt.colums  descing

    再看下下面我实现查询User表,并把数据存储到List里面的操作,就实现了LINQ执行查询的操作

    public List<GxUserInfo> LoadAll()
            {
                try
                {
                    T_BBSEntities db = new T_BBSEntities();
                    var temp = (from pt in db.T_UserInfo
                                select pt
                              ).ToList();
                    if(temp.Count==0)
                    {
                        return null;
                    }
                    else
                    {
                        List<GxUserInfo> GxUser = new List<GxUserInfo>();
                        temp.ForEach(e=>GxUser.Add(LoadFormModel(e)));
                        return GxUser;
                    }
                }
                catch(Exception ex)
                {
                    return null;
                }
                
            }

    这里定义的是一个查询用户表所有数据的操作,如果不为空,就把数据给添加到List类型的GxUser里面,再进行调用

    这里面就用到了Lambda表达式

    e=>GxUser.Add(LoadFormModel(e))这里就是一个遍历添加的方法,
    LoadFormModel(e)是用户数据模型,不同于EF模型及其他数据模型,这里是对模型定义的数据类型进行赋值操作
    public GxUserInfo LoadFormModel(T_UserInfo Model)
            {
                GxUserInfo UserInfo = new GxUserInfo
                {
                    ID=Model.ID,
                    UserName = Model.UserName,
                    PassWord = Model.PassWord,
                    Sex = Model.Sex,
                    Addr=Model.Addr,
                    PhoneNum=Model.PhoneNum
    
                };
                return UserInfo;
            }

    然后可以自己定义其他方法,比如我要根据用户ID来查询数据,我就会这么做

    public GxUserInfo LoadSpecId(int id)
            {
                try
                {
                    T_BBSEntities db = new T_BBSEntities();
                    var temp = from pt in db.T_UserInfo
                               where pt.ID == id
                               select pt;
                    return temp.Any() ? LoadFormModel(temp.First()) : null;
                }
                catch(Exception ex)
                {
                    return null;
                }
            }

    后面就可以直接调用这里定义的方法了,然后进行业务逻辑上的处理等等,所以LINQ还是很便捷的一种操作方式

    而Lambda表达式最多的是对数据模型的操作,这个后面单独再做个笔记说Lambda表达式的写法及用法了,用法很多,也很强大

    
    
    
  • 相关阅读:
    Android listview 的应用
    Android 创建自定义布局
    Android Dialog
    android ProgressBar
    Lilac Pwn stack4-stack_pivoting Writeup
    CTFHUB Pwn ret2shellcode Writeup
    Lilac Pwn stack3-rop Writeup
    函数调用过程与栈帧结构
    线性回归及Python实现
    Google Kick Start Round A 2020
  • 原文地址:https://www.cnblogs.com/yinxuejunfeng/p/8686558.html
Copyright © 2020-2023  润新知