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表达式的写法及用法了,用法很多,也很强大



原文地址:https://www.cnblogs.com/yinxuejunfeng/p/8686558.html