C#-EF

 

EF框架将数据库的表映射到model中,这样使用封装好的函数对象的操作就可以转为SQL对数据库的操作。

 

EF的使用

 

1.工程中NuGet包安装。

 

 

 

2.安装成功后会有2个引用。

 

 

 

 

3.工程右键→Add→New Item

 

 

 

第一项是从数据库中导入Model

 

 

 

创建数据库连接,中间选择YES将连接的账号密码等放到app.config中,最后的EF命名在程序中会使用(取个方便的名)。

 

 

 

 

选择要导入的表和视图等。

 

 

 

点击finish完成。

 

工程中添加了这些item,上面是连接上下文,下面是EFTest.tt是添加的表Model.

 

 

 

 

 

代码中的应用

            //select 
            using (var ef = new EFTest())
            {
                var dd = ef.aaaa.Where(s => s.ID == 33).FirstOrDefault();
            }
            //delete
            using (var ef = new EFTest())
            {
                var lst_header = ef.aaaa.ToList<aaaa>();
                var lst_rt = lst_header.Where(s => s.ID > 0);
                ef.aaaa.RemoveRange(lst_rt);
                //如果是删除单个的就用 ef.aaaa.Remove(lst_rt);

                ef.SaveChanges();
            }

            //update
            using (var ef = new EFTest())
            {
                var dd = ef.aaaa.Where(s => s.ID == 33).FirstOrDefault();
                dd.name = "jinwei33";
                ef.SaveChanges();
            }


            //insert
            using (var ef = new EFTest())
            {
                var lst_rt = new List<aaaa>() {
                    new aaaa() { ID = 77, age = 7 },
                };
                //如果是插入单个的就用  ef.aaaa.Add(lst_rt);
                ef.aaaa.AddRange(lst_rt);
                ef.SaveChanges();
            }

 

 

执行SQL

            using (var ef = new SDS_NONEDIEntities3())
            {
                //返回实体类型的
                //string  sql = "select * from shipment_header";
                //var studentList = ef.Shipment_Header.SqlQuery("Select top 10 * from shipment_header").ToList<Shipment_Header>();

                //返回非实体类型的
                var studentName = ef.Database.SqlQuery<string>("select top 1 shipmentno from shipment_header").FirstOrDefault<string>();


                //无返回的
                //int noOfRowUpdated = ef.Database.ExecuteSqlCommand("Update aaaa set name='sss' where  id=77");
            }

 

 

 

 

EF执行SQL

参考:https://www.cnblogs.com/zhaoshujie/p/10694188.html

posted @ 2020-02-27 13:25  JinweiChang  阅读(525)  评论(0编辑  收藏  举报