.NET技术-2.0. 操作数据库-EF

项目参见:

EF安装配置 参见:

https://www.cnblogs.com/1285026182YUAN/p/10772330.html

https://www.cnblogs.com/1285026182YUAN/p/10749872.html

1. 查询数据

 var queryRes1 = DB.TblOrder.Where(t => true).ToList();

2. 新增数据

            #region == 新增 数据 ==

            //新增 单条
Models.TblOrder model = new Models.TblOrder() { Amount = , Uptime = DateTime.Now, OrderCode = "", UserId = , Text = "aaaa" }; DB.TblOrder.Add(model); DB.SaveChanges(); //新增 多条
List<Models.TblOrder> list = new List<TblOrder>() {new TblOrder() { Amount = , Uptime= DateTime.Now, OrderCode = "", UserId = ,Text="aaaa"},
new TblOrder() { Amount = , Uptime= DateTime.Now, OrderCode = "", UserId = ,Text="aaaa"} }; DB.TblOrder.AddRange(list); DB.SaveChanges(); #endregion

3. 修改数据

   #region == 修改 数据 ==
//修改 单条
model = queryRes1.First(); model.Text = "update_" + DateTime.Now.ToShortDateString() + "_" + DateTime.Now.ToLongTimeString(); DB.Entry(model).State = Microsoft.EntityFrameworkCore.EntityState.Modified; //也可以 DB.SaveChanges(); //修改 多条
list = queryRes1.Skip().Take().ToList(); list.ForEach(t =>
{ t.Text = "update_" + DateTime.Now.ToShortDateString() + "_" + DateTime.Now.ToLongTimeString(); //DB.Entry(t).State = Microsoft.EntityFrameworkCore.EntityState.Modified; }); DB.SaveChanges();
#endregion

            #region == 修改2 数据 ==

            //修改 单条
model = queryRes1.First(); model.Text = "update2_" + DateTime.Now.ToShortDateString() + "_" + DateTime.Now.ToLongTimeString(); DB.TblOrder.Update(model); DB.SaveChanges(); //修改 多条
list = queryRes1.Skip().Take().ToList(); list.ForEach(t =>
{ t.Text = "update2_" + DateTime.Now.ToShortDateString() + "_" + DateTime.Now.ToLongTimeString(); }); DB.TblOrder.UpdateRange(list); DB.SaveChanges(); #endregion

4. 删除数据

     #region == 删除 数据 ==
//删除 单条 model = queryRes1.First(); DB.Entry(model).State = Microsoft.EntityFrameworkCore.EntityState.Deleted; DB.SaveChanges(); //修改 多条
list = queryRes1.Skip().Take().ToList(); list.ForEach(t =>
{
DB.Entry(t).State = Microsoft.EntityFrameworkCore.EntityState.Deleted;
}); DB.SaveChanges(); #endregion

            #region  == 删除2 数据 ==

            queryRes1 = DB.TblOrder.Where(t => true).ToList();

            //删除 单条
model = queryRes1.First(); DB.TblOrder.Remove(model); DB.SaveChanges(); //修改 多条
list = queryRes1.Skip().Take().ToList(); DB.TblOrder.RemoveRange(list); DB.SaveChanges();
#endregion

5. 开启事务

       // GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
using (IDbContextTransaction transaction = DB.Database.BeginTransaction())
{
try
{
//新增 多条
List<Models.TblOrder> list = new List<TblOrder>() {new TblOrder() { Amount = , Uptime= DateTime.Now, OrderCode = "", UserId = ,Text="aaaa"},
new TblOrder() { Amount = , Uptime= DateTime.Now, OrderCode = "", UserId = ,Text="bbbbb"},
new TblOrder() { Amount = , Uptime= DateTime.Now, OrderCode = "", UserId = ,Text="ccccc"}}; DB.TblOrder.AddRange(list); DB.SaveChanges(); //throw new Exception(); List<Models.TblOrder> list2 = DB.TblOrder.Where(t => true).ToList(); list2.ForEach(t => { t.Text = "bkas"; }); DB.TblOrder.UpdateRange(list2); DB.SaveChanges(); Trans(transaction);//事务做为参数传递。 //提交事务
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
Console.WriteLine("Error occurred.");
}
} return new string[] { "value1", "value2" }; }
  //带事务参数的方法
private void Trans(IDbContextTransaction transaction)
{ //新增 多条
List<Models.TblOrder> list = new List<TblOrder>() {new TblOrder() { Amount = , Uptime= DateTime.Now, OrderCode = "", UserId = ,Text="aaaa"},
new TblOrder() { Amount = , Uptime= DateTime.Now, OrderCode = "", UserId = ,Text="bbbbb"},
new TblOrder() { Amount = , Uptime= DateTime.Now, OrderCode = "", UserId = ,Text="ccccc"}}; DB.TblOrder.AddRange(list); DB.SaveChanges();
}

OK

.NET技术-2.0. 操作数据库-EF的更多相关文章

  1. .NET技术-2.0. 操作数据库-Dapper

    .NET技术-2.0. 操作数据库-Dapper 项目参见: 1. 为什么选择Dapper 1) 性能优越: 其实在各大网站上,我们大概都会看到这样的一个对比效果图,在超过500次poco seria ...

  2. JDBC数据源(DataSource)数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用。

    JDBC数据源(DataSource)的简单实现   数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用. 2.数据源提供了一种简单获取数据库连接的方式,并能在内部通 ...

  3. yii2.0操作数据库

    首先不得不说yii2.0面向对象的比较彻底,建议没学过或者没学好面向对象的同学再看看面向对象. 其次切入正题. 先创建数据库,这步自己写. DROP TABLE IF EXISTS `country` ...

  4. Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  5. Asp.Net MVC 自定义的MVC框架(非EF操作数据库)

    一些废话:在北京辞职回家不知不觉中已经半年多了,这半年中有过很多的彷徨,困惑,还有些小小难受.半年时间算是我人生以来遇到过的最困苦的时候.理想的工作跟我擦肩而过,驾照也没有考过,年后这一改革...,毕 ...

  6. VoltDB公布4.0版本号,大步提高内存实时分析速度,进军操作数据库市场

    号称世界上最快的关系数据库的VoltDB与2014年1月29号(美国东部时间)公布下一代数据库4.0版本号.新的版本号有非常多地方的改进,大步挺高系统性能.在过去的13年,VoltdDB号称自己公司较 ...

  7. 下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作

    下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作 User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的 ...

  8. EF操作数据库的步骤和一些简单操作语句

    这里是写给我自己做记录的,不会写成一篇很好的博客,也不会置顶,如果有朋友看到了,而且觉得里面的内容不咋的,希望见谅哈! 关于这部分内容,这里推荐一篇总结的非常好的博客,如果你点击进来了,那么请略过下面 ...

  9. NetCore2.0下使用EF CodeFirst创建数据库

    本文所使用的VS版本:VS2017 15.3.0 首先新建一个.net core项目  取名NetCoreTask 使用模型视图控制器方式 新建Model层 在Model层下新建一个user实体类 1 ...

随机推荐

  1. JS中如何进行对象的深拷贝

    在JS中,一般的=号传递的都是对象/数组的引用,并没有真正地拷贝一个对象,那如何进行对象的深度拷贝呢?如果你对此也有疑问,这篇文章或许能够帮助到你 一.对象引用.浅层拷贝与深层拷贝的区别 js的对象引 ...

  2. Numpy库的学习(二)

    今天来继续学习一下Numpy库的使用 接着昨天的内容继续 在Numpy中,我们如果想要进行一个判断使用“==” 我们来看下面的代码 vector = np.array([5,10,15,20,25]) ...

  3. webstorm2018.1 汉化

    https://github.com/pingfangx/TranslatorX 这个百度云 选择webstorm 选择勾选的文件 选择你下载webstorm 的版本 我下载的是2018.1的 之后等 ...

  4. Mysql8.0.11win64重置root用户密码操作

    在笔记本和PC上面使用Mysql8.0.11免安装版本,均遇到此问题,记性不太好,现做下笔记. 1.cmd下,先关掉已启动的mysql服务,使用命令:net stop mysql 2.步骤1的cmd窗 ...

  5. 基于IPv6的数据包分析(第三组)

    一.实验拓扑 二.配置过程 本处提供R1.R2.R4的详细配置过程(包含静态路由的配置) 1)      R1: R1(config)#int e1/0 R1(config-if)#ipv6 addr ...

  6. 浅析CompareAndSet(CAS)

    最近无意接触了AtomicInteger类compareAndSet(从JDK5开始),搜了搜相关资料,整理了一下 首先要说一下,AtomicInteger类compareAndSet通过原子操作实现 ...

  7. py文件2种执行方式

    import m1# print('模块导入执行', m1.num) # import sys# print(sys.path)import json# print(json) if __name__ ...

  8. php之微信公众号发送模板消息

    讲一下开发项目中微信公众号发送模板消息的实现过程(我用的还是Thinkphp5.0). 先看一下效果,如图: 就是类似于这样的,下面讲一下实现过程: 第一步:微信公众号申请模板消息权限: 立即申请: ...

  9. jQuery 模拟操作

    1.常用模拟 有时,需要通过模拟用户操作,来达到单击的效果.例如在用户进入页面后,就触发 click 事件,而不需要用户去主动单击.在 jQuery 中,可以使用 trigger() 方法完成模拟操作 ...

  10. JS 时间字符串与时间戳之间的转换

    1.当前时间换时间戳 var timestamp = parseInt(new Date().getTime()/1000); // 当前时间戳 document.write(timestamp); ...