EF Core学习02 EF Core在ASP.NET Core项目中的应用

一.MyContext注入及连接字符串配置
首先在MyContext类中,编写构造函数。

public MyContext(DbContextOptions<MyContext> options):base(options)
        {

        }

这样,options中包含的连接字符串及其他配置信息就可以传到MyContext类中。
然后再ASP.NET Core项目中引用data和model两个项目,在startup类中的ConfigureServices方法中注入MyContext,代码如下

services.AddDbContext<MyContext>(
                options =>
                {
                    options.UseSqlServer(_configuration.GetConnectionString("DefaultConnection"));
                    
                });

UseSqlServer方法中的参数就是数据库连接字符串的参数,不做过多说明。
二.对数据库的操作
1.查询及过滤

			//简单查询可直接tolist,如下代码是查询并排序
			_context.Provinces.OrderBy(x=>x.Id).ToList()
			//关联属性查询可以用以下两种方法
            //预加载:include,可以多个向下钻取
            var provinces = _context.Provinces.Include(x => x.Cities).ThenInclude(x=>x.Mayor).ToList();
            //query projections 映射查询,查询指定属性
            var provinces1 = _context.Provinces.Select(x => new
            {
                x.Name,
                x.Id,
                Cities=x.Cities.Where(o=>o.AreaCode=="").ToList()//关联属性,可过滤
            }).ToList();
            //过滤
            //根据ID过滤,两种方法均可
            var province = _context.Provinces.FirstOrDefault(o => o.Id == provinceId);
            var province = _context.Provinces.Find(provinceId);
            //模糊匹配
            var province1 = _context.Provinces.FirstOrDefault(x => EF.Functions.Like(x.Name, "%北%"));

2.添加修改及删除
具体见代码

				//单个添加
				_context.Provinces.Add(model);
                var list=new List<Province>();
                //多个添加
                _context.AddRange(list);
                //单个修改
                _context.Provinces.Update(model);
                //多个修改
                _context.Provinces.UpdateRange(list);
                //单个删除
                _context.Provinces.Remove(model);
                //多个删除
                _context.Provinces.RemoveRange(list);
                //提交事务,不提交不生效,同时如果多个更改有一个错误,会全部回滚
                _context.SaveChanges();

猜你喜欢

转载自blog.csdn.net/weixin_39714231/article/details/87005322