zoukankan      html  css  js  c++  java
  • 【原】EF简单使用

    /// <summary>
            /// 数据上下文对象
            /// </summary>
          static  TestEntities te = new TestEntities();
    static void Main(string[] args)
            {
               
                执行方法();
              
                Console.ReadKey();
            }
    
    #region 新增
            static void Add()
            {
                //创建实体对象
                User uObj = new User() { UName = "刘涛", UPwd = "testpwd" };
                //通过EF新增到数据库中
                //将对象加入到数据上下文的users集合中
                te.Users.Add(uObj);
                //调用 数据上下文的保存方法,将对象存储到数据库中
                te.SaveChanges();
                Console.WriteLine("保存成功!");
            } 
            #endregion
    #region 即时查询
            static void Query()
            {
                List<User> list = te.Users.Where(u => u.UName == "刘涛"&&u.Uids==3).ToList();
                list.ForEach(u => Console.WriteLine(u.ToString()));
            }  
            #endregion
    #region 延时查询
            static void Query1()
            {
                
                //集合的标准查询运算符方法,是来自于System.Linq.Enumerable里给IEnumerable接口添加的扩展方法
                //EF上下文里的DBSet<T>里的标准查询运算符来自于System.Linq.Queryabl给IQueryable接口添加的扩展方法;
                //延时加载
                //System.Data.Entity.Infrastructure.DbQuery<User> i = te.Users.Where(u => u.UName == "刘涛").OrderByDescending(u => u.UPwd) as System.Data.Entity.Infrastructure.DbQuery<User>;
                //User user1 = i.FirstOrDefault();
                //延迟加载,针对于外键实体的延迟
                IQueryable<UsersDetail> address = te.UsersDetails.Where(a => a.udUid == 2);
                //此时只查询了地址表
                UsersDetail addr01 = address.FirstOrDefault();
                //查询了地址对应的用户表
                Console.WriteLine(addr01.User.UName);
                //按需加载的缺点,数据量大的时候会为每次调用外键实体时,都会去查询数据库,EF有小优化:相同的外键实体,只查一次;
                IQueryable<UsersDetail> addrs = te.UsersDetails;
                foreach (UsersDetail item in addrs)
                {
                    Console.WriteLine(item.udAddress+":userName="+item.User.UName);
                }
    
    
               // Console.WriteLine(user1.UPwd.ToString());
               
            }   
            #endregion
    #region 修改
            static void Edit()
            {
                //查询出一个要修改的对象
                User usr = te.Users.Where(u => u.Uids == 1).FirstOrDefault();
                //修改内容
                Console.WriteLine("修改前" + usr.ToString());
                usr.UName = "测试修改";
                //重新保存到数据库
                te.SaveChanges();
                Console.WriteLine("修改后" + usr.ToString());
                Console.WriteLine("修改内容成功!");
            } 
            #endregion
     #region 删除
            static void Delete()
            {
                //创建要删除的对象
                User u = new User();
                u.Uids = 1;
                //附加到EF中
                te.Users.Attach(u);
                //标记为删除
                te.Users.Remove(u);
                //执行删除SQL
                te.SaveChanges();
                Console.WriteLine("删除成功!");
            } 
            #endregion
  • 相关阅读:
    Http协议状态码总结
    ES6中的let和const
    Swiper-轮播图
    HTML5动画API—— requestAnimationFrame
    神奇的 conic-gradient 圆锥渐变
    最流行的5个前端框架对比
    jQuery适用技巧笔记整合
    PHP中的面向对象OOP中的魔术方法
    居中
    (function($){})(jQuery)
  • 原文地址:https://www.cnblogs.com/gebenhagen/p/4539663.html
Copyright © 2011-2022 走看看