EF Core学習02 EF CoreはASP.NET Coreプロジェクトでの応用

2187 ワード

一.MyContext注入および接続文字列構成は,まずMyContextクラスでコンストラクタを記述する.
public MyContext(DbContextOptions options):base(options)
        {

        }

これにより、optionsに含まれる接続文字列やその他の構成情報がMyContextクラスに伝達される.そしてASP.NET Coreプロジェクトではdataとmodelの2つのプロジェクトを参照し、startupクラスのConfigureServicesメソッドにMyContextを注入します.コードは次のとおりです.
services.AddDbContext(
                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();
                //    
                _context.AddRange(list);
                //    
                _context.Provinces.Update(model);
                //    
                _context.Provinces.UpdateRange(list);
                //    
                _context.Provinces.Remove(model);
                //    
                _context.Provinces.RemoveRange(list);
                //    ,      ,             ,     
                _context.SaveChanges();