EF-使用EF写SQL语句
        【摘要】 
                    
                        
                    
                    
 文章目录
 【前言】查询增加
  【注意】
 
 
【前言】 
之前的学习已经知道了,使用EF可以直接从数据库“转换”为实体,这是EF框架的一个功能。最近发现了EF的另外一个功能,使用EF框架可以...
    
    
    
    【前言】
之前的学习已经知道了,使用EF可以直接从数据库“转换”为实体,这是EF框架的一个功能。最近发现了EF的另外一个功能,使用EF框架可以不用写SQL语句,可以使用EF专用的语句来“替换”SQL语句。
查询
以顾客登陆为例子
IService1
		[OperationContract]
		List<string> SelectCardNo(string cardNo, string cardPwd);
  
 - 1
- 2
Service1
        public List<string> SelectCardNo(string cardNo, string cardpWd)
        {
            CustomerDAL CustomerIDAL = new CustomerDAL();
            return CustomerIDAL.SelectCardNo(cardNo, cardpWd);
        }
  
 - 1
- 2
- 3
- 4
- 5
DAL
        /// <summary>
        ///用卡号和密码来查询customer表,返回值为一个实体
        /// </summary>
        /// <param name="CardNo"></param>
        /// <param name="CardPwd"></param>
        /// <returns></returns>
        public List<T_Customer> SelectCardNo(string cardNo, string cardPwd)
        {
            //定义一个list集合,用来接收集合
            List<T_Customer> list = new List<T_Customer>();
            //连接数据库
            //数据库名称:ZeroSystemEntities2
            //新定义一个数据名称  examentity 
            using (ZerooSystemEntities examentity = new ZerooSystemEntities())
            {              
                //定义一个新名字checkcardno,用来查询数据
                foreach (var checkcardno in examentity.T_Customer)
                {
                    //判断B层传输的数据是否符合数据库的数据
                    // 加一个去掉空格的函数Trim(),防止数据库里面有空格。
                    if (cardNo == checkcardno.CardNo.Trim() && cardPwd == checkcardno.CardPwd.Trim())
                    {
                        //返回用户ID,密码用户名,等级,手机号
                       list.Add(checkcardno.CardNo);
                        list.Add(checkcardno.CardPwd);
                        //遍历完就关闭状态
                        break;
                    }
                }
            }
            //返回一个集合
            return list;
        }
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
使用EF框架语句的查询
  public List<T_Customer> SelectCardNo(string cardNo, string cardPwd)
        {
            using (ZerooSystemEntities examentity = new ZerooSystemEntities())
            {     
           		 T_Customer  customer= examentity.T_Customer.SingleOrDefault(model=>model.CardNo==cardNo   && model.CardPwd==cardPwd);
           		 return customer;
          	}
 		 }
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
使用SQL语句的查询
        public List<T_Customer> SelectCardNo(string cardNo, string cardpWd)
        {
            //连接数据库
            //数据库名称:ZeroSystemEntities2
            //新定义一个数据名称  examentity 
            using (ZerooSystemEntities examentity = new ZerooSystemEntities())
            {
                List<T_Customer> selectCardNo = examentity.Database.SqlQuery<T_Customer>("select * from T_Customer where CardNo=@cardNo and CardPwd=@cardpWd",
                    new SqlParameter("@cardNo", cardNo),
                    new SqlParameter("@cardpWd", cardpWd)
                    ).ToList();
                return selectCardNo;
            }
        }
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
增加
IService1
		[OperationContract]
		bool InsertLine(T_Line line);
  
 - 1
- 2
Service1
        public bool InsertLine(T_Line line)
        {
            CustomerDAL CustomerIDAL = new CustomerDAL();
            return CustomerIDAL.InsertLine(line);
        }
  
 - 1
- 2
- 3
- 4
- 5
DAL
       /// <summary>
        /// 添加记录到line表
        /// </summary>
        /// <returns></returns>
        public bool InsertLine(T_Line line)
        {
            //连接数据库
            //数据库名称:ZeroSystemEntities3
            //新定义一个数据名称  examentity 
            using (ZerooSystemEntities examentity = new ZerooSystemEntities())
            {
                //将创建的实体,放入数据库实体的集合
                examentity.T_Line.Add(line);
                //写回数据库
                examentity.SaveChanges();
            }
            return true;
        }
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
【注意】
因为我在这个程序中还使用了WCF框架,所以上面的IService和Service都是在WCF框架中使用的,如果您不需要使用WCF框架,就可以把IService中的内容写到IDAL层,剩下的Service和DAL中的内容都写到DAL层就可以了。
 增删改操作必须使用entity.SaveChanges()进行保存一下。
 entity.SaveChanges()返回值为数据库里受影响的行数entity.SaveChanges()>0表示操作成功。
 如entity.SaveChanges()=0则表示操作失败。
感谢阅读,欢迎交流!
文章来源: blog.csdn.net,作者:张艳伟_Laura,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/Laura__zhang/article/details/118660251
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
- 收藏
- 关注作者
 
             
           
评论(0)