ASP.NET Core 使用 EF Core

Posted Lzysnd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET Core 使用 EF Core相关的知识,希望对你有一定的参考价值。

一、NuGet安装EF Core支持的程序包,使用sql server 数据库

右键单击“项目” > “管理NuGet程序包” 查找安装

sql server:

Microsoft.EntityFrameworkCore.SqlServer:Sql Server数据库EF提供程序

Microsoft.EntityFrameworkCore.Design:设计时使用到的EF共享库

Microsoft.EntityFrameworkCore.Tools:EF的NuGet包管理器命令工具

 

mysql需要安装:

MySql.Data.EntityFrameworkCore -Pre
Pomelo.EntityFrameworkCore.MySql
Microsoft.EntityFrameworkCore.Tools
Microsoft.VisualStudio.Web.CodeGeneration.Design

二、创建实体类

 public class User
    
        /// <summary>
        /// 用户ID
        /// </summary>
        [Description("用户ID")]
        [Key]
        public int id  get; set;  
        /// <summary>
        /// 用户名
        /// </summary>
        [Description("用户名")]
        public string name  get; set; 
        /// <summary>
        /// 用户名
        /// </summary>
        [Description("用户密码")]
        public int password  get; set; 

    

三、创建数据库上下文(MyDBContext)

  public class MyDBContext : DbContext
    
        public MyDBContext()  
        public MyDBContext(DbContextOptions<MyDBContext> options) : base(options)
        


        //用户类
        public virtual DbSet<User> User  get; set; 

    

四、appsettings.json配置数据库连接字符串

(不是密码)


  "Logging": 
    "LogLevel": 
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    
,
"AllowedHosts": "*",
//连接字符串
"ConnectionStrings": 
    "SqlServer": "Data Source=.;Initial Catalog=DormitoryDB;Integrated Security=True"
  

(sa密码)


  "Logging": 
    "LogLevel": 
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    
,
"AllowedHosts": "*",

//连接字符串
"ConnectionStrings": 
   
     "SqlServer": "server=localhost;database=数据库名;uid=管理员账户;pwd=密码;CharSet=utf8"
  

五、注册上下文对象依赖注入服务,连接数据库

在Startup.cs中ConfigureServices方法中注册数据库上下文

     public void ConfigureServices(IServiceCollection services)
        
            #region 数据库上下文注册
           
            //注册上下文对象

            services.AddDbContext<MyDBContext>(options =>
            
                options.UseSqlServer(Configuration.GetConnectionString("SqlServer"));
                //options.EnableSensitiveDataLogging();
            );

            #endregion

            services.AddControllers();
            services.AddSwaggerGen(c =>
            
            c.SwaggerDoc("v1", new OpenApiInfo  Title = "SystemAPi", Version = "v1" );
            );


            
        

在数据库上下文中添加连接数据库字符串

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
     => optionsBuilder.SqlServer(@"Server=.Database=数据库名字;Integrated Security=True");
    

 

六、生成数据库。使用NuGet包管理命令来生成数据库和表

打开Visual Studio的“工具”> “NuGet包管理器”>“程序包管理控制台

输入以下命令:

Add-Migration 迁移名称(版本名称)

Update-Database 迁移名称(版本名称) 然后数据库生成成功

使用remove-Migration 删除上一次的迁移(版本)

remove-Migration 删除上一次的迁移(版本)

接着就可以在控制器中写自己要实现的接口了

以上是关于ASP.NET Core 使用 EF Core的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ASP.NET Core 设置 EF6 迁移

ASP.NET Core 使用 EF Core

如何使用 EF Core 在 ASP.NET Core 中取消应用迁移

EF Core 中的 ASP.NET Core 5 MVC 和 Identity - 基于资源的授权

ASP.NET MVC Core/6:EF 6 脚手架错误

asp.net core, Ef core : 在运行时动态映射存储库和服务