.NetCore中EFCore的使用整理
EntirtyFramework框架是一个轻量级的可扩展版本的流行实体框架数据访问技术. 其中的.NetCore版本对应EntityFrameworkCore Git源代码地址:https://github.com/aspnet/EntityFramework/ 官方使用文档说明:https://docs.microsoft.com/zh-cn/ef/core/index 一、安装Nuget包 Install-package Microsoft.EntityFrameworkCore
Install-package Microsoft.EntityFrameworkCore.SqlServer Micorsoft.EntityFrameworkCore:EF框架的核心包 ![]() 2.手写实体类,只要数据库中 存在对应 的表就可以了 ![]() 3.测试代码: ![]() static void TestOne() { TestContext _context = new TestContext(); int count = _context.Numeber1s.Count(); Console.WriteLine(count); } static void TestTwo() { DateTime start = DateTime.Now; TestContext _context = new TestContext(); for (int i = 0; i < 10000; i++) { _context.Numeber1s.Add(new Numeber1() { Num1 = i }); _context.SaveChanges(); } Console.WriteLine(_context.Numeber1s.Count()); Console.WriteLine("总时间,秒数:" + (DateTime.Now - start).TotalSeconds); } 在调试的状态下1万条插入数据执行时间:
EntityFrameworkCore.Tools 如果不需要自动根据数据库生成代码,这个几个类库可以不安装 。
Install-package Microsoft.EntityFrameworkCore.Design 2.选择对应的项目,执行生成命名
Scaffold-DbContext "Server=.;database=test1;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models2 3.生成结果如下 :
//配置EF的服务注册 services.AddEntityFramework() .AddDbContext<NotifyBirdContext>(options => { options.UseSqlServer(Configuration.GetConnectionString("SqlServer"), //读取配置文件中的链接字符串 b => b.UseRowNumberForPaging()); //配置分页 使用旧方式 });
public NotifyBirdContext(DbContextOptions<NotifyBirdContext> opt) : base(opt) { } 3.在控制器中使用数据库上下文服务
NotifyBirdContext _Context = null; public ProjectController(NotifyBirdContext context) { _Context = context; } /// <summary> /// 获取可用项目数量 /// </summary> /// <returns></returns> [HttpGet("getcount")] public int GetCount() { try { return _Context.Project.Count(); } catch (Exception ex) { throw ex; } } 五 、.Net Core中 EF Core上下文配置 2,使用全局变量方式定义链接字符串 /// <summary> /// 全局定义数据连接字符串 /// </summary> public static string ConStr { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { //optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;database=NotifyBird;Trusted_Connection=True;"); //配置数据链接 optionsBuilder.UseSqlServer(ConStr,b=>b.UseRowNumberForPaging()); } 2.程序 启动注册链接 public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc(); NotifyBirdContext.ConStr = Configuration.GetConnectionString("SqlServer"); } 3.任意位置实例化,上下文使用 |
|