Entity Framework (又称ADO.NET Entity Framework) 是微软以 ADO.NET 为基础所发展出来的对象关系对应(O/R Mapping) 解决方案

    *新增

方法一:

//实例化添加的对象

Employees employees = new Employees { FirstName="zhou",LastName="quan", Title="Manager"}; #region ef添加数据 using (var db = new NorthwindEntities())
{ db.Employees.Add(employees);
db.SaveChanges(); } #endregion

方法二:

//添加引用
using System.Data.Entity.Infrastructure; //实例化添加的对象 Employees employees = new Employees { FirstName="zhou",LastName="quan", Title="Manager"}; #region ef添加数据 using (var db = new NorthwindEntities())
{ DbEntityEntry<Employees> enty = db.Entry<Employees>(employees);
enty.State = System.Data.Entity.EntityState.Added;
db.SaveChanges(); }
 #endregion                                                                                

*修改

方法一:

#region ef修改数据(官方推荐,先查询,在修改)

 using (var db = new NorthwindEntities())
{ Employees employees = db.Employees.Where(r => r.EmployeeID == 1).FirstOrDefault();
if (employees != null)
{ employees.FirstName = "zhou";
employees.LastName = "quan";
db.SaveChanges(); } } #endregion

 方法二:

//添加引用
using System.Data.Entity.Infrastructure;
#region ef修改数据(修改整个实体,所有字段都会修改,其他没有值的都会为空NULL)
/定义修改的数据
Employees employees = new Employees { EmployeeID = 1, FirstName = "zhou", LastName = "quan" };
using (var db = new NorthwindEntities())
{ DbEntityEntry<Employees> entry = db.Entry<Employees>(employees);
entry.State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
} #endregion

注意:上面这个方法会修改整个实体所有字段的数据,没有初始化值的字段会默认给空

上面的方法一可以与方法二结合,这个代码就略了

例如sql如下:

exec sp_executesql N'UPDATE [dbo].[Employees]
SET [LastName] = @0, [FirstName] = @1, [Title] = NULL, [TitleOfCourtesy] = NULL, [BirthDate] = NULL, [HireDate] = NULL, [Address] = NULL, [City] = NULL, [Region] = NULL, [PostalCode] = NULL, [Country] = NULL, [HomePhone] = NULL, [Extension] = NULL, [Photo] = NULL, [Notes] = NULL, [ReportsTo] = NULL, [PhotoPath] = NULL
WHERE ([EmployeeID] = @2)
',N'@0 nvarchar(20),@1 nvarchar(10),@2 int',@0=N'quan',@1=N'zhou',@2=1

方法三:

//添加引用
using System.Data.Entity.Infrastructure;
 #region ef修改数据
//定义修改的数据
Employees employees = new Employees { EmployeeID = 1, FirstName = "zhou", LastName = "quan" };
using (var db = new NorthwindEntities())
{ //将对象加入EF容器,并获取当前实体对象的状态管理对象
DbEntityEntry<Employees> entry = db.Entry<Employees>(employees);
//设置该对象为被修改为
entry.State = System.Data.Entity.EntityState.Unchanged;
//设置属性是否修改
entry.Property("FirstName").IsModified = true;
entry.Property("LastName").IsModified = true;
db.SaveChanges();
}
#endregion

 *删除

方法一:

//添加引用
using System.Data.Entity.Infrastructure;
#region ef删除数据
//定义数据
Employees employees = new Employees { EmployeeID = 1};
using (var db = new NorthwindEntities())
{
DbEntityEntry<Employees> entry = db.Entry<Employees>(employees);
entry.State = System.Data.Entity.EntityState.Deleted;
db.SaveChanges(); } #endregion

 方法二:

 #region ef删除数据
//定义数据
Employees employees = new Employees { EmployeeID = 1};
using (var db = new NorthwindEntities())
{
//附加要删除的对象到ef
db.Employees.Attach(employees);
//标记为删除--注意:标记为删除状态
db.Employees.Remove(employees);
db.SaveChanges(); }
#endregion

 方法三(先查询,再删除):

  #region ef删除数据
using (var db = new NorthwindEntities())
{
var employees = db.Employees.Where(r => r.EmployeeID == 1).FirstOrDefault();
if (employees!=null)
{
db.Employees.Remove(employees);
db.SaveChanges();
} } #endregion

  *查询

简单查询:

 #region ef查询数据

  using (var db = new NorthwindEntities())
{
//Linq查询
var result = from p in db.Employees where p.City=="上海"&&p.Title.Contains("上海") orderby p.EmployeeID ascending,p.FirstName descending select new { Name=p.FirstName,Address=p.Address}; //方法查询
var _result = db.Employees.Where(r => r.City == "上海" && r.Title.Contains("上海")).OrderBy(r => r.EmployeeID).OrderByDescending(r => r.FirstName).Select(r => new { Name = r.FirstName, Address = r.Address }); } #endregion

Entity FrameWork 增删改查的更多相关文章

  1. 3、ASP.NET MVC入门到精通——Entity Framework增删改查

    这里我接上讲Entity Framework入门.从网上下载Northwind数据库,新建一个控制台程序,然后重新添加一个ado.net实体数据模型. EF中操作数据库的"网关"( ...

  2. 浅谈Entity Framework 增删改查和事务操作

    1.增加对象 DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长主键外),如果不赋值,则会数据库中会被设置为NULL(注意是否 ...

  3. Entity Framework 增删改查和事务操作

    1.增加对象 DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长主键外),如果不赋值,则会数据库中会被设置为NULL(注意是否 ...

  4. 【C#】Entity Framework 增删改查和事务操作

    1.增加对象 DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长主键外),如果不赋值,则会数据库中会被设置为NULL(注意是否 ...

  5. 2017年2月22日-----------乱码新手自学.net 之Entity Framework 增删改

    由于我是自学的,没有人教,在网上查资料也查不到个所以然.问大神们也是爱理不理的. 所以这篇随笔纯粹源自于我自己的认识.是否真正正确我也没有把握. 如果有什么错误,请大神们给予指正 ========== ...

  6. Entity Framework增删改之通用精简方法

    用EF用了好长一段时间了,从EF4.0的版本开始接触,感觉这个ORM不能说性能是最好的,但是我个人感觉功能实现以及和mvc的结合还是一个不错的企业级网站的解决方案,在此写个简易的通用扩展方法来方便大家 ...

  7. ef增删改查

    [C#]Entity Framework 增删改查和事务操作 1.增加对象 DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长 ...

  8. entity framework 新手入门篇(2)-entity framework基本的增删改查

    经过前两节的简单描述,终于可以进入entity framework的使用部分了.本节将对entity framework原生的增删改查进行讲解. 承接上面的部分,我们有一个叫做House的数据库,其中 ...

  9. 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序

    使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...

随机推荐

  1. DWZ富客户端框架+DWZ简介及其使用+DWZ讨论组

    DWZ富客户端框架+DWZ简介及其使用+DWZ讨论组 地址: DWZ富客户端框架:http://jui.org/#_blank DWZ简介及其使用:http://blog.sina.com.cn/s/ ...

  2. 电子产品使用感受之—我的iPad Pro坏了。。。

    2018年2月,我下单了搭载A10X Fusion处理器.256GB存储的12.9寸iPad Pro,同时购买了AppleCare来保护我的iPad Pro.AppleCare价格虽然相对iPhone ...

  3. angular--获取时间方法services

    写了一些公用方法获取自然周.传入开始和结束日期,获取中间全部日期等方法 .service('DateServices', [function () { // 获取某年自然周的方法 (如果是当年,只返回 ...

  4. debian使用nginx创建静态文件存储

    vim /etc/nginx/sites-available/default 在server下添加 location ~ .*\.(gif|jpg|jpeg|png)$ { expires 24h; ...

  5. vivi.c框架

    内核文档: V4L2-framework.txt UVC:usb video controll UVC驱动框架: system call: open read write -------------- ...

  6. sql中遍历字符串

    在sql或者存储过程中会需要遍历字符串. ), --如111,222,333,尾部加, ), @Id int, ) set @split = ',' ) begin ,) ,charindex(@sp ...

  7. .net core使用ef core操作mysql数据库

    新建.net core webapi项目 在NuGet包管理器中搜索 MySql.Data.EntityFrameworkCore并安装,安装的8.0.14版本,只安装这一个就够了 安装后创建Data ...

  8. C++的默认构造函数

    待看文章:C++ 合成默认构造函数的真相 默认构造函数指不带参数或者所有参数都有缺省值的构造函数!!! 类的默认构造函数可以使得在实例化该类的对象时不用提供参数,但是类也可以不含默认构造函数,这样在实 ...

  9. 建立请求号 request

    1:获取TR号(一般由团队的负责人创建,发出) 2:进入 i7p系统 3:点击process 4:输入tr号 5:选中 正确的请求号,右键> process item> add task ...

  10. 【UML】NO.55.EBook.8.UML.3.001-【UML和模式应用 第3版】

    1.0.0 Summary Tittle:[UML]NO.54.EBook.8.UML.3.001-[UML和模式应用 第3版] Style:DesignPattern Series:DesignPa ...