zoukankan      html  css  js  c++  java
  • Entity Framework Core使用笔记③

    简单的查询和插入,修改

    插入:

    例:Contex.Book.Add(book);

    Context的add方法是追踪book对象;

    例:Contex.SaveChanges();

    检查所有追踪的对象;

    读取每个对象状态;

    生成sql语句;

    执行sql语句;

    如果返回数据,获取这些数据返回值;

            private readonly MyContext context;
            public WeatherForecastController( MyContext context)
            {
                this.context = context;
            }
    
    
            [HttpGet]
            public int Get()
            {
                var sort=new Sort
                {
                    Types = "IT",
                    BookId="1"
                };
                //连接数据库已经注册了
                context.Add(sort);
                return  context.SaveChanges();
    
            }

     批量插入可以使用context.AddRange

    查询:

       private readonly MyContext context;
            public WeatherForecastController( MyContext context)
            {
                this.context = context;
            }
    
    
            [HttpGet]
            public List<Sort> Get()
            {
                return context.Sorts.ToList();
    
            }

     这个Tolist遇到的时候才做的查询,前面都是在拼表达式。

    或者便利获取到,但是会影响性能,因为便利时会context没有关闭。

    查询的过滤语句

     查询的方法linq方法

    ToList(); 返回集合

    First(); 返回第一调数据,没有抛异常

    FirstOrDefault(); 和上面一样,但没数据不抛异常

    single();多余一条都会抛异常

    SingleOrDefault();两和以上条会异常,

    Last();需要排序

    LastOrDefault();

    Count();

    LongCount();

    Min();

    Max();

    Average();

    LIKE查询:

    //Name like "%11%"

    linq:where(x=>x.Name.Contains("11"));

    EFcore:where(x=>x.EF.Functions.like(x.Name,"%11%"));

    修改数据:

     private readonly MyContext context;
            public WeatherForecastController( MyContext context)
            {
                this.context = context;
            }
    
    
            [HttpGet]
            public int Get()
            {
                var sort = context.Sorts.FirstOrDefault();
                if (sort != null) {
                    sort.Types = "child";               
                }
                return context.SaveChanges();
            }

    修改了第一个行的Types

     因为这个对象第一列做了查询一直被dbcontext一直被追踪。

    上面的都是在线修改,加载到内存去修改,EFcore也支持离线修改,使用update方法。

    删除:

    删除需要追踪那条数据,使用它的remove()方法。

    原始sql的支持

    存储过程:

    context.Database.ExecuteSqlCommand("exec...");

    执行查询:

    Dbset.Fromsql();

  • 相关阅读:
    jQuery之五:CheckBox控制
    WinServer2003 设置之:xp风格
    ASP.net: cookie
    ASP.NET之:URL重写(转载)
    jQuery 之二:Ajax加载Json数据
    jQuery 之一:对象插件
    Asp.net:Form
    jQuery之四:Table过滤
    jQuery之三:Tab控制
    Opera 9.01 Build 8543
  • 原文地址:https://www.cnblogs.com/liuyang95/p/12944930.html
Copyright © 2011-2022 走看看