在.NET Core类库中使用EF Core迁移数据库到SQL Server的方法_实用技巧

在.NET Core类库中使用EF Core迁移数据库到SQL Server的方法

在开发ASP.NET Core应用程序时,通常需要使用实体框架(Entity Framework),并且需要将应用程序的数据存储在关系型数据库中。本文将介绍如何使用.NET Core类库中的EF Core来迁移数据库到SQL Server。

## 1. 创建.NET Core类库项目

首先,我们需要创建一个.NET Core类库项目,用于存放我们的模型类、数据上下文和EF Core配置信息。

在Visual Studio中,打开“文件”菜单,依次选择“新建”->“项目”->“.NET Core”,然后选择“类库”类型:

![创建类库项目](https://img-blog.csdn.net/20180517165245629?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dzbXkxMzU2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)

接下来,我们需要安装EF Core的包。在Visual Studio中,打开“工具”菜单,依次选择“NuGet包管理器”->“程序包管理器控制台”,然后运行以下命令来安装EF Core和SQL Server提供程序:

```aspnet

Install-Package Microsoft.EntityFrameworkCore

Install-Package Microsoft.EntityFrameworkCore.SqlServer

```

## 2. 编写模型类和数据上下文

接下来,我们需要编写模型类和数据上下文。可以按照以下示例代码编写:

```aspnet

// 模型类

public class Product

{

public int Id { get; set; }

public string Name { get; set; }

public decimal Price { get; set; }

}

// 数据上下文

public class AppDbContext : DbContext

{

public AppDbContext(DbContextOptions options) : base(options)

{

}

public DbSet Products { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)

{

modelBuilder.Entity().HasKey(x => x.Id);

modelBuilder.Entity().Property(x => x.Name).IsRequired();

modelBuilder.Entity().Property(x => x.Price).IsRequired().HasColumnType("decimal(18, 2)");

}

}

```

以上代码定义了一个Product模型类和一个AppDbContext数据上下文类,其中模型类包含Id、Name和Price三个属性;数据上下文类引用了所有模型类(在本例中只有Product一个模型类),并在OnModelCreating方法中定义了模型类的配置信息。

## 3. 添加配置信息

我们需要在应用程序的appsettings.json文件中添加数据库相关的配置信息。例如:

```aspnet

{

"ConnectionStrings": {

"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;MultipleActiveResultSets=true"

},

"Logging": {

"LogLevel": {

"Default": "Warning"

}

}

}

```

上述配置定义了一个名为DefaultConnection的连接字符串,用于连接到本地的SQL Server Express实例中的MyDatabase数据库。

接下来,我们需要在.NET Core类库项目中添加一个Startup.cs文件,并添加以下代码来读取配置信息:

```aspnet

public static IConfiguration Configuration { get; set; }

public static void Init(IConfiguration configuration)

{

Configuration = configuration;

}

public static IServiceCollection ConfigureServices(IServiceCollection services)

{

var connectionString = Configuration.GetConnectionString("DefaultConnection");

services.AddDbContext(options => options.UseSqlServer(connectionString));

return services;

}

```

以上代码读取了appsettings.json文件中的连接字符串,并将其传递给AddDbContext方法来配置EF Core。

## 4. 迁移数据库

最后,我们需要在Visual Studio的程序包管理器控制台中运行以下命令来迁移数据库:

```aspnet

Add-Migration InitialMigration

Update-Database

```

上述命令将创建一个名为InitialMigration的迁移文件,然后将该迁移应用于数据库。

## 总结

本文介绍了如何使用.NET Core类库中的EF Core来迁移数据库到SQL Server。首先,我们需要创建一个.NET Core类库项目,并安装EF Core和SQL Server提供程序;然后,我们需要编写模型类和数据上下文,并在appsettings.json文件中添加数据库连接字符串;最后,我们需要在程序包管理器控制台中运行Add-Migration和Update-Database命令来迁移数据库。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签