• 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

  • 相关阅读:
    PAT 1053 住房空置率
    PAT 1078 字符串压缩与解压
    PAT 1024 科学计数法
    HDU 2078 复习时间
    HDU 2065 "红色病毒"问题
    网络协议分析
    多线程同步
    多线程程序设计
    消息队列通讯
    共享内存通讯
  • 原文地址:https://www.cnblogs.com/JinweiChang/p/12371702.html
Copyright © 2020-2023  润新知