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)