首先安装Nuget包
Install-package Microsoft.EntityFrameworkCoreInstall-package Microsoft.EntityFrameworkCore.SqlServer
Micorsoft.EntityFrameworkCore:EF框架的核心包
Micorsoft.EntityFrameworkCore.SqlServer:针对SqlServer数据库的扩展其次设置(appsettings.json)配置文件的数据连接字符串
"ConnectionStrings": { "SqlServer": "Data Source=localhost;Initial Catalog=testingdb;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=password" }
创建实体(province)
namespace MicroCore{ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; [Table("dt_province")] public class province { [Key] ////// 自动 /// public int id { set; get; } ////// 当前标识 /// public string code { set; get; } ////// 名称 /// public string name { set; get; } }}
方法一、通过配置链接数据库
1、创建Entity Framework Core配置
namespace MicroCore{ using Microsoft.EntityFrameworkCore; public class EFContext : DbContext { public EFContext(DbContextOptionsoptions) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity (entity => { entity.ToTable("dt_province"); entity.HasKey(a => a.id); }); } public DbSet province { get; set; } }}
2、Startup 启动注册链接
public void ConfigureServices(IServiceCollection services){ services.AddMvc(); services.AddApplicationInsightsTelemetry(Configuration); services.AddEntityFrameworkSqlServer().AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SqlServer")));}
3、Index.cshtml.cs调用数据
namespace MicroCore.Pages{ public class IndexModel : PageModel { private readonly EFContext db; public IndexModel(EFContext db) { this.db = db; } public void OnGet() { var result = db.province.Where(p => p.id == 1).ToList(); } }}
方法二、自定义配置链接数据库
1、创建Entity Framework Core配置
namespace MicroCore{ using Microsoft.EntityFrameworkCore; public class EFContext : DbContext { public static string ConnectionString { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer(ConnectionString, b => b.UseRowNumberForPaging()); } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity(entity => { entity.ToTable("dt_province"); entity.HasKey(a => a.id); }); } public DbSet province { get; set; } }}
2、Startup 取得配置链接
public void ConfigureServices(IServiceCollection services){ services.AddMvc(); EFContext.ConnectionString = Configuration.GetConnectionString("SqlServer");}
3、Index.cshtml.cs调用数据
namespace MicroCore.Pages{ public class IndexModel : PageModel { public void OnGet() { EFContext db = new EFContext(); var result = db.province.Where(p => p.id == 3).ToList(); } }}