Entity FrameWork 操作使用详情
Entity FrameWork 是以ADO.net为基础发展的ORM解决方案。
一、安装Entity FrameWork框架
二、添加ADO.Net实体数据模型
三、EF插入数据
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EFDemo { class Program { static void Main(string[] args) { //获取数据库上下文对象 testContext dbContext = new testContext(); //创建数据实体 employee emp = new employee { name = "yangs", passwd = "123", age = 18 }; dbContext.employee.Add(emp); //提交数据 dbContext.SaveChanges(); Console.WriteLine(emp.id); Console.ReadKey(); } } }
四、EF删除数据
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EFDemo { class Program { static void Main(string[] args) { //获取id employee emp = new employee { id = 18 }; //获取数据库上下文对象 testContext dbContext = new testContext(); //将实体添加到数据库上下文 dbContext.employee.Attach(emp); //对数据删除 dbContext.employee.Remove(emp); //保存 dbContext.SaveChanges(); } } }
五、EF修改数据
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EFDemo { class Program { static void Main(string[] args) { //准备实体 employee emp = new employee { id = 11, name = "例子", passwd = "123", age = 44 }; //获取数据库上下文对象 testContext dbContext = new testContext(); //将实体添加到数据库上下文 dbContext.employee.Attach(emp); dbContext.Entry(emp).State = System.Data.Entity.EntityState.Modified; dbContext.SaveChanges(); } } }
六、EF 查询数据
1.简单查询
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EFDemo { class Program { static void Main(string[] args) { testContext dbContext = new testContext(); var list = dbContext.employee; foreach (var item in list) { Console.WriteLine(item.name); } Console.ReadKey(); } } }
2.where 查询条件
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EFDemo { class Program { static void Main(string[] args) { testContext dbContext = new testContext(); var list = dbContext.employee.Where(p => p.id > 5); foreach (var item in list) { Console.WriteLine(item.name); } Console.ReadKey(); } } }
2. skip(10) => 逃过10条数据,take(10) => 获取10条数据
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EFDemo { class Program { static void Main(string[] args) { testContext dbContext = new testContext(); var list = dbContext.employee.Skip(1).Take(2); foreach (var item in list) { Console.WriteLine(item.name); } Console.ReadKey(); } } }
3. orderBy 排序
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EFDemo { class Program { static void Main(string[] args) { testContext dbContext = new testContext(); //降序 var list = dbContext.employee.OrderByDescending(p => p.id); foreach (var item in list) { Console.WriteLine(item.name); } Console.ReadKey(); } } }
4. select 查询某几个字段
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EFDemo { class Program { static void Main(string[] args) { testContext dbContext = new testContext(); //降序 var list = dbContext.employee.Select(p => new { p.id, p.name }).Where(p => p.id > 5); foreach (var item in list) { Console.WriteLine(item.id+" -- "+item.name); } Console.ReadKey(); } } }
5. EF高级写法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EFDemo { class Program { static void Main(string[] args) { testContext dbContext = new testContext(); //降序 var list = from o in dbContext.employee where o.id > 5 select o; foreach (var item in list) { Console.WriteLine(item.id+" -- "+item.name); } Console.ReadKey(); } } }
join 联合查询
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EFDemo { class Program { static void Main(string[] args) { testContext dbContext = new testContext(); //降序 var list = from e in dbContext.employee join i in dbContext.employeeInfo on e.id equals i.emp_id where e.id > 5 select new {e, i.content}; } } }
七、延迟加载
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EFDemo { class Program { static void Main(string[] args) { testContext dbContext = new testContext(); //降序 var list = dbContext.employee.ToList(); foreach (var item in list) { } } } }
toList()转换为本地内存数据级别,会请求数据。如果没有toList(),则当数据遍历的时候请求。