ASP.NET Core 使用 EF Core

本文档介绍了如何使用NuGet安装EFCore支持的SQLServer和Mysql数据库程序包,创建实体类和数据库上下文,并在appsettings.json中配置数据库连接字符串。接着,展示了如何在Startup.cs中注册数据库上下文并使用NuGet包管理命令生成数据库和表。最后,提供了删除迁移的命令,以便在控制器中编写接口。
摘要由CSDN通过智能技术生成

一、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应用程序中,可以使用依赖注入(Dependency Injection)来管理对象的生命周期。通常,我们使用一个IoC容器(例如Autofac、Unity、Ninject等)来实现依赖注入。 在这种情况下,DAL和BLL通常是通过构造函数注入(Constructor Injection)来实例化的。这意味着IoC容器会在创建BLL实例时,自动创建并注入DAL实例。这个过程通常是在应用程序启动时完成的,因此可以说DAL和BLL的生命周期与应用程序的生命周期相同。 在这种情况下,如果您使用的是ASP.NET Core,则可以将IoC容器的配置放在Startup.cs文件中的ConfigureServices方法中。例如: ```csharp public void ConfigureServices(IServiceCollection services) { // 注册DAL和BLL services.AddTransient<IDAL, DAL>(); services.AddTransient<IBLL, BLL>(); } ``` 在这个例子中,DAL和BLL都被注册为“瞬时”(Transient)服务,这意味着每次请求它们时,都会创建一个新的实例。 如果您使用的是ASP.NET框架,则可以在Global.asax.cs文件中的Application_Start方法中进行IoC容器的配置。例如: ```csharp protected void Application_Start() { // 创建IoC容器 var container = new Container(); // 注册DAL和BLL container.Register<IDAL, DAL>(); container.Register<IBLL, BLL>(); // 设置IoC容器为ASP.NET的默认DependencyResolver DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container)); } ``` 在这个例子中,DAL和BLL都被注册为“瞬时”(Transient)服务,这意味着每次请求它们时,都会创建一个新的实例。此外,我们还使用SimpleInjectorDependencyResolver将IoC容器设置为ASP.NET的默认DependencyResolver。
评论 121
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值