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(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...
随机推荐
- easyui combobox 去空格事件 去掉,结果输入空格体验不畅的感觉,让combobox能够输入空格
$("[comboname=name]").next("span").find("input.textbox-text").unbind(& ...
- 在 C# 中使用文件名启动应用程序
本文演示了如何启动与某一给定文档扩展名或文件类型关联的应用程序而又无须知道该关联应用程序的名称或位置.例如,您可以用一个与 .bmp 文件扩展名关联的应用程序启动 Arcade.bmp 文件,多 ...
- vue的事件对象,方法执行
方法都写在methods重,有两种写法:1. getMsg:function(){ alert(); }, 这种写法就是对象中的方法 2. getMsg1(){ alert(); }注意没有func ...
- linux命令 网络篇
linux常用命令 netstat 语法(命令) 主要查看端口状态 netstat 语法 netstat -t/tcp 显示Tcp传输协议连线状况; netstat -u/udp 显示UDP传输协 ...
- liunx系统问题总结
1.Unable to locate package错误 解决办法 :输入命令 sudo apt-get update,进行软件的更新
- Compile pam with pam_cracklib.so
pam_cracklib.so is dependent on libcrack.so. Configure command will search libcrack.so. If it didn't ...
- Java+selenium如何清理浏览器Cookie
一.场景:在未注销系统切换不同账号登录系统下,登录会有浏览器缓存,导致登录时间异常缓慢.跟开发浏览器缓存处理机制有关系. 二.解决方法: 获取浏览器Cookie,在Login方法前增加清除缓存的代码. ...
- android studio样式文件汇总
android studio样式文件汇总:shape.Theme|styles .selector 1:shape shape用于设定形状,有6个子标签,各属性如下: res/drawable/sty ...
- larave----------通过composer.json下载laravel包----barryvdh/laravel-debugbar
1.去Packagist网站https://packagist.org/packages/barryvdh/laravel-debugbar#dev-master找到
- usermod - linux修改用户帐户信息
usermod - 修改用户帐户信息 modify a user account usermod [options] user_name usermod 命令修改系统帐户文件来反映通过命令行指定的变化 ...