EF入门
来源:互联网 发布:abb robotware软件配置 编辑:程序博客网 时间:2024/04/30 18:10
一,对比Linq to SQL
最近学了两个具有ORM思想的东西,一个是Linq to SQL ,另一个是EF。。。
学完之后总是从使用上感觉它们是一样的,后来自己查了查,统计了个表格:
各有优劣吧~~欢迎前来补充~~~~
二,EF实现简单增删改查
static void Main(string[] args) { #region 增加单个实体 using (var dbContext = new SecondChargeEntities())//先创建访问数据库的入口 { var mystudent = new T_StuInfo { StuNum = "01", StuCardNum = "01", StuName = "杰伦哥哥" }; //定义一个要增加的对象 dbContext.T_StuInfo.Add(mystudent);//增加 int result = dbContext.SaveChanges();//真正写入数据库 Console.WriteLine(result); //打印出1 } #endregion #region 查询单个实体 using (var dbContext = new SecondChargeEntities())//先创建访问数据库的入口 { var mystudent = dbContext.T_StuInfo.Find("01");//使用主键查找上下文跟踪的实体 Console.WriteLine(mystudent.StuName); //打印出学生姓名:杰伦哥哥 } #endregion #region 修改单个实体 using (var dbContext = new SecondChargeEntities())//先创建访问数据库的入口 { var mystudent = (from stu in dbContext.T_StuInfo where stu.StuName == "周杰伦" select stu).Single(); mystudent.StuName = "亲耐滴杰伦哥哥"; int result=dbContext.SaveChanges(); Console.WriteLine(result); //返回1 } #endregion #region 删除单个实体——使用Remorve方法 using (var dbContext = new SecondChargeEntities())//先创建访问数据库的入口 { var mystudent = (from stu in dbContext.T_StuInfo where stu.StuName == "令狐冲" select stu).SingleOrDefault(); dbContext.T_StuInfo.Remove(mystudent); //将实体标记为deleted int result = dbContext.SaveChanges(); //将更改保存到数据库 Console.WriteLine(result); //返回1 } #endregion //--------删除方法这样写可能有点儿效率问题: //要删除一个实体,只要知道它的id就ok了,但是上面 //的方法却要先加载这个实体到内存,这是个多余的步骤,下面我们使用attach方法 #region 删除单个实体——attach方法 using (var dbContext = new SecondChargeEntities())//先创建访问数据库的入口 { var mystudent =new T_StuInfo { StuNum ="01" }; dbContext.T_StuInfo.Attach(mystudent);//将实体以unchanged状态附加到上下文中 dbContext.T_StuInfo.Remove(mystudent ); //将实体标记为deleted int result= dbContext.SaveChanges(); //提交到时数据库 Console.WriteLine(result ); //打印出1 } #endregion #region 删除单个实体ExecuteSQLCommand方法 using (var dbcontext=new SecondChargeEntities()) { dbcontext.Database.ExecuteSqlCommand("delete from T_StuInfo where StuNum='3'"); } #endregion }
如上DEMO,我们还是主要使用DBContext这个类的变种来实现对数据库的操作,这个东西从功能上有点儿像SQLHelper,但是从原理上看,它们还是不一样滴。
这个上下文类利用底层的ADO.NET生成SQL代码实现对数据库的增删改查,相比以前的SQL语句,这种方法更易于写和调试,而且非常简单;并且在EF中,也可以使用linq的语句简化查询。
0 0
- EF入门
- EF入门
- EF映射入门
- 【EF映射】EF入门(一)
- ef快速入门原创教程
- Asp.Net EF Code First 简单入门
- ef
- EF
- EF
- EF
- EF
- EF
- 实体框架 (EF) 入门 => 四、CodeFirst 枚举支持
- 实体框架 (EF) 入门 => 五、连接和模型
- 实体框架 (EF) 入门 => 六、性能注意事项
- EF总结--EF简介
- 【EF】浅谈EF
- MVC + EF + Bootstrap 2 权限管理系统入门级(附源码)
- UIday02
- 11.25Java基础入学
- 信号量_Semaphore与互斥_Mutex
- 第十四周项目六 阅读程序(7、8、9)
- IOS开发---OC语言-⑬成员变量作用域
- EF入门
- C++与C语言动态存储分配的区别
- HBase的rowkey设计
- log4j基本使用
- cocos2d-x中的模态对话框简单实现
- EBTABLES 命令行
- H.264编码之IDCT变换公式推导
- cocos2d-js游戏设计常用函数笔记(持续更新) (2014-08-18 15:43:12)
- Android采用ListView三种显示数据列表(附源码)