架构师_程序员

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 163|回复: 0

[.NET Core] .NET Core Entity使用Entity Framework Core链接数据库

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-7 13:21:33
zu
首先安装Nuget包

  1. Install-package Microsoft.EntityFrameworkCore
  2. Install-package Microsoft.EntityFrameworkCore.SqlServer
复制代码

Micorsoft.EntityFrameworkCore:EF框架的核心包
Micorsoft.EntityFrameworkCore.SqlServer:针对SqlServer数据库的扩展

其次设置(appsettings.json)配置文件的数据连接字符串

  1. "ConnectionStrings": {
  2.     "SqlServer": "Data Source=localhost;Initial Catalog=testingdb;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=password"
  3.   }
复制代码
创建实体(province)

  1. namespace MicroCore
  2. {
  3.     using System.ComponentModel.DataAnnotations;
  4.     using System.ComponentModel.DataAnnotations.Schema;
  5.     [Table("dt_province")]
  6.     public class province
  7.     {
  8.         [Key]
  9.         /// <summary>
  10.         /// 自动
  11.         /// </summary>
  12.         public int id { set; get; }
  13.         /// <summary>
  14.         /// 当前标识
  15.         /// </summary>
  16.         public string code { set; get; }
  17.         /// <summary>
  18.         /// 名称
  19.         /// </summary>
  20.         public string name { set; get; }
  21.     }
  22. }
复制代码
方法一、通过配置链接数据库

1、创建Entity Framework Core配置

  1. namespace MicroCore
  2. {
  3.     using Microsoft.EntityFrameworkCore;
  4.     public class EFContext : DbContext
  5.     {
  6.         public EFContext(DbContextOptions<EFContext> options) : base(options)
  7.         {

  8.         }
  9.         protected override void OnModelCreating(ModelBuilder modelBuilder)
  10.         {
  11.             base.OnModelCreating(modelBuilder);
  12.             modelBuilder.Entity<province>(entity =>
  13.             {
  14.                 entity.ToTable("dt_province");
  15.                 entity.HasKey(a => a.id);
  16.             });
  17.         }
  18.         public DbSet<province> province { get; set; }
  19.     }
  20. }
复制代码
2、Startup 启动注册链接

  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3.     services.AddMvc();
  4.     services.AddApplicationInsightsTelemetry(Configuration);
  5.     services.AddEntityFrameworkSqlServer().AddDbContext<EFContext>(options => options.UseSqlServer(Configuration.GetConnectionString("SqlServer")));
  6. }
复制代码
3、Index.cshtml.cs调用数据

  1. namespace MicroCore.Pages
  2. {
  3.     public class IndexModel : PageModel
  4.     {
  5.         private readonly EFContext db;
  6.         public IndexModel(EFContext db)
  7.         {
  8.             this.db = db;
  9.         }

  10.         public void OnGet()
  11.         {
  12.             var result = db.province.Where(p => p.id == 1).ToList();
  13.         }
  14.     }
  15. }
复制代码
方法二、自定义配置链接数据库

1、创建Entity Framework Core配置

  1. namespace MicroCore
  2. {
  3.     using Microsoft.EntityFrameworkCore;
  4.     public class EFContext : DbContext
  5.     {
  6.         public static string ConnectionString { get; set; }
  7.         protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  8.         {            
  9.             optionsBuilder.UseSqlServer(ConnectionString, b => b.UseRowNumberForPaging());
  10.         }
  11.         protected override void OnModelCreating(ModelBuilder modelBuilder)
  12.         {
  13.             base.OnModelCreating(modelBuilder);
  14.             modelBuilder.Entity<province>(entity =>
  15.             {
  16.                 entity.ToTable("dt_province");
  17.                 entity.HasKey(a => a.id);
  18.             });
  19.         }
  20.         public DbSet<province> province { get; set; }
  21.     }
  22. }
复制代码
2、Startup 取得配置链接

  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3.     services.AddMvc();
  4.     EFContext.ConnectionString = Configuration.GetConnectionString("SqlServer");
  5. }
复制代码
3、Index.cshtml.cs调用数据

  1. namespace MicroCore.Pages
  2. {
  3.     public class IndexModel : PageModel
  4.     {
  5.         public void OnGet()
  6.         {
  7.             EFContext db = new EFContext();         
  8.             var result = db.province.Where(p => p.id == 3).ToList();
  9.         }
  10.     }
  11. }
复制代码






上一篇:vscode搜索图标不见了
下一篇:ASP.NET Core依赖注入使用自带的IOC容器
帖子永久地址: 

架构师_程序员 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与架构师_程序员享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和架构师_程序员的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、架构师_程序员管理员和版主有权不事先通知发贴者而删除本文

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

Mail To:help@itsvse.com

QQ|Archiver|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2019-7-18 09:35

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表