Entity FrameWork 增删改查
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 增删改查的更多相关文章
- 3、ASP.NET MVC入门到精通——Entity Framework增删改查
这里我接上讲Entity Framework入门.从网上下载Northwind数据库,新建一个控制台程序,然后重新添加一个ado.net实体数据模型. EF中操作数据库的"网关"( ...
- 浅谈Entity Framework 增删改查和事务操作
1.增加对象 DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长主键外),如果不赋值,则会数据库中会被设置为NULL(注意是否 ...
- Entity Framework 增删改查和事务操作
1.增加对象 DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长主键外),如果不赋值,则会数据库中会被设置为NULL(注意是否 ...
- 【C#】Entity Framework 增删改查和事务操作
1.增加对象 DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长主键外),如果不赋值,则会数据库中会被设置为NULL(注意是否 ...
- 2017年2月22日-----------乱码新手自学.net 之Entity Framework 增删改
由于我是自学的,没有人教,在网上查资料也查不到个所以然.问大神们也是爱理不理的. 所以这篇随笔纯粹源自于我自己的认识.是否真正正确我也没有把握. 如果有什么错误,请大神们给予指正 ========== ...
- Entity Framework增删改之通用精简方法
用EF用了好长一段时间了,从EF4.0的版本开始接触,感觉这个ORM不能说性能是最好的,但是我个人感觉功能实现以及和mvc的结合还是一个不错的企业级网站的解决方案,在此写个简易的通用扩展方法来方便大家 ...
- ef增删改查
[C#]Entity Framework 增删改查和事务操作 1.增加对象 DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长 ...
- entity framework 新手入门篇(2)-entity framework基本的增删改查
经过前两节的简单描述,终于可以进入entity framework的使用部分了.本节将对entity framework原生的增删改查进行讲解. 承接上面的部分,我们有一个叫做House的数据库,其中 ...
- 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序
使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...
随机推荐
- Centos7 安装 Ipython的方法
环境:Centos7 最小化安装yum源设置:阿里的base源和epel源python版本:2.7.5 yum install -y python2-pip.noarchyum install -y ...
- 关于0x3f3f3f3f
发现有人把无穷大设成0x3f3f3f3f,好像还真不是随便设的. 0x3f3f3f3f比10^9大一点,比一般数据范围大: 乘2之后比2147483467小,满足正无穷加正无穷还是正无穷: 每个字节都 ...
- 终于等到你!WebOptimizer - A bundler and minifier for ASP.NET Core
迷人的 ASP.NET Core 有一个美中不足之处,自从一开始接触它到现在,我就一直不喜欢,一直想找到替代品,甚至想过自己实现一个,它就是 BundlerMinifier . 昨天面对 bundle ...
- Java图片合并
/** * 纵向合并图片,ossObject.getObjectContent()返回InputStream对象 */ private BufferedImage mergeImage(List< ...
- Vue中computed,methods 和watch
Vue中的计算属性和方法属性 1.计算属性 computed 模版中可以使用表达式 <div id="example"> {{ message.split('').re ...
- [Day9]面向对象
1.面向过程与面向对象 (1)面向对象思维方式是一种更符合人们思考习惯的思想 (2)面向过程思维方式中更多的体现的是执行者,而面向对象中更多的体现的是指挥者 (3)面向对象思维方式将复杂的问题简单化 ...
- iOS NSCache缓存类的了解
前言: 最近面试时,问到了限定并发数的视频下载,当时回答的时通过GCD_barrier 处理,回来想想也可以通过NSCache处理,所以顺便复习一下,这个知识点. 一,关于NSCache说明 说明 ...
- 解决web资源跨域请求问题
参考地址: http://my.oschina.net/lichaoqiang/blog/317823 在浏览器请求中,出现跨域访问资源的问题,我们肯定会遇到.如果跨域请求被阻止,有可能导致css.j ...
- DAX/PowerBI系列 - 累计总计(Cumulative Total)
DAX/PowerBI系列 - 累计总计(Cumulative Total) 2017/07/23 更新:B列公式(见最后) 难度: ★★☆☆☆(2星) 适用: ★★☆☆☆(2星) 概况: 这个模式普 ...
- C#设计模式(12)——享元模式(Flyweight Pattern)(转)
一.引言 在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非 ...