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){//获取idemployee 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.employeejoin i in dbContext.employeeInfoon e.id equals i.emp_idwhere 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(),则当数据遍历的时候请求。