插入数据
1、只要操作模型类属性,就可以向数据库中增加数据,但是通过C#代码修改模型类中的数据只是修改了内存中的数据。对模型类做修改后,需要调用DbContext的异步方法。
SaveChangesAsync()把修改保存到数据库。也有同步的保存方法SaveChanges(),但是用EF Core都推荐用异步方法。异步知识点还欠缺的朋友可能需要去补一补。

2、EF Core默认会跟踪实体类对象以及DbSet的改变。

  public  class Program
    {
        static async  Task  Main(string[] args)
        {//实例化上下文类 mdb 逻辑上的数据库
            using (MyDbContext mdb = new  MyDbContext())
            {//在实例化实体类Books 给实体类的属性添加值
                Book book = new Book();
                book.bookname = "钢铁是怎样练成的";
                book.CreatName = DateTime.Now.ToString();
                book.DateTime = DateTime.Now;
                mdb.Books.Add(book);//把模型表book的对象加入到逻辑数据库中的Dbset<Books>逻辑表里面
                await mdb.SaveChangesAsync(); //Savechanges()方法相当与Update-Database

            }
        }
    }

查询数据
1、DbSet实现了IEnumerable<T>接口,因此可以对
DbSet实施Linq操作来进行数据查询。EF Core会把Linq操作编译转换为SQL语句。

这就实现了面向对象对数据库进行操作。

 #region 查询数据
                //where可以查询范围的值 
                //var books = mdb.Books.Where(b => b.Id > 0);

                //foreach (var book in books)
                //{
                //    Console.WriteLine(book.bookname);
                //}


                //single返回一个数据的对象 一条数据对象 可以准确的查询出精确的数据

                //var book = mdb.Books.Single(b => b.Id ==2);
                //Console.WriteLine(book.bookname);


                //orderby 排序
                //var books = mdb.Books.OrderBy(b=>b.Id);可以添加Where条件 列如:Where(b=>b.id<10)

                //foreach (var item in books)
                //{
                //    Console.WriteLine(item.bookname);
                //}

                #endregion

修改数据

1、要对数据进行修改,首先需要把要修改的数据查询出来,然后再对查询出来的对象进行修改,然后再执行SaveChanges()保存修改。
 

有点繁琐,需要先用Single把数据对象查询出来

然后执行修改属性值通过SvaeChanges();方法更新

   #region 修改数据
                var book = mdb.Books.Single(b=>b.bookname== "钢铁是怎样练成的");

                book.bookname = "我不想炼钢铁了";


                await mdb.SaveChangesAsync();//把修改的数据保存关系数据库

                #endregion

删除数据

1、删除也是先把要修改的数据查询出来,然后再调用DbContext的Remove方法把对象删除,然后再执行
SaveChanges(保存修改)。
 

    #region 删除数据
                var book = mdb.Books.Single(b => b.Id==1);

                mdb.Remove(book);


                await mdb.SaveChangesAsync();//把删除的数据保存关系数据库

                #endregion

批量数据修改

1、目前批量修改、删除多条数据的方法。
局限性:性能低:杳出来,再一条条Update、Delete,而不能执行
 


                #region 批量数据修改
                var books = mdb.Books.Where(b=>b.Id<10);
                foreach (var book in books)
                {
                    Console.WriteLine(book.bookname);
                    //   book.bookname = book.bookname + '的';
                }
               // await mdb.SaveChangesAsync();

                #endregion


 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐