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. Centos7 安装 Ipython的方法

    环境:Centos7 最小化安装yum源设置:阿里的base源和epel源python版本:2.7.5 yum install -y python2-pip.noarchyum install -y ...

  2. 关于0x3f3f3f3f

    发现有人把无穷大设成0x3f3f3f3f,好像还真不是随便设的. 0x3f3f3f3f比10^9大一点,比一般数据范围大: 乘2之后比2147483467小,满足正无穷加正无穷还是正无穷: 每个字节都 ...

  3. 终于等到你!WebOptimizer - A bundler and minifier for ASP.NET Core

    迷人的 ASP.NET Core 有一个美中不足之处,自从一开始接触它到现在,我就一直不喜欢,一直想找到替代品,甚至想过自己实现一个,它就是 BundlerMinifier . 昨天面对 bundle ...

  4. Java图片合并

    /** * 纵向合并图片,ossObject.getObjectContent()返回InputStream对象 */ private BufferedImage mergeImage(List< ...

  5. Vue中computed,methods 和watch

    Vue中的计算属性和方法属性 1.计算属性 computed 模版中可以使用表达式 <div id="example"> {{ message.split('').re ...

  6. [Day9]面向对象

    1.面向过程与面向对象 (1)面向对象思维方式是一种更符合人们思考习惯的思想 (2)面向过程思维方式中更多的体现的是执行者,而面向对象中更多的体现的是指挥者 (3)面向对象思维方式将复杂的问题简单化 ...

  7. iOS NSCache缓存类的了解

    前言:   最近面试时,问到了限定并发数的视频下载,当时回答的时通过GCD_barrier 处理,回来想想也可以通过NSCache处理,所以顺便复习一下,这个知识点. 一,关于NSCache说明 说明 ...

  8. 解决web资源跨域请求问题

    参考地址: http://my.oschina.net/lichaoqiang/blog/317823 在浏览器请求中,出现跨域访问资源的问题,我们肯定会遇到.如果跨域请求被阻止,有可能导致css.j ...

  9. DAX/PowerBI系列 - 累计总计(Cumulative Total)

    DAX/PowerBI系列 - 累计总计(Cumulative Total) 2017/07/23 更新:B列公式(见最后) 难度: ★★☆☆☆(2星) 适用: ★★☆☆☆(2星) 概况: 这个模式普 ...

  10. C#设计模式(12)——享元模式(Flyweight Pattern)(转)

    一.引言 在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非 ...