Get the App
SLTechnology News&Howtos  ›  Database  › 

EntityFramework Code First under .net core 1.1

Shulou Source: shulou.com Published: 2022-06-01 04:20:04 10月14日 Update

Create a new asp.net core project, and then upgrade the class library referenced by. Net core to 1.1. In this case, you need to manually add a runtimes node under project.json, as follows:

"runtimes": {

"win10-x64": {}

}

Add the following three class libraries (version 1.1) to Nuget at the same time:

Microsoft.EntityFrameworkCore.Design

Microsoft.EntityFrameworkCore.SqlServer

Microsoft.EntityFrameworkCore.Tools

Next, define DbContext, which is used to generate the database, as follows:

Using Microsoft.EntityFrameworkCore;using System.Collections.Generic;using System.ComponentModel.DataAnnotations Namespace EntityFrameworkDemo.Model {/ Database object / public class PermissionContext: DbContext {public PermissionContext (DbContextOptions opt): base (opt) {} protected override void OnModelCreating (ModelBuilder modelBuilder) {/ / confirm that the two fields in the UserRole table are the joint primary key modelBuilder.Entity () .HasKey (u = > new {u.UserID) U.RoleID}) } public DbSet Users {get; set;} public DbSet Roles {get; set;} public DbSet UserRoles {get; set;} / public class User {[Key] public int ID {get; set;} public string UserName {get; set } public string Password {get;set;} public List UserRoles {get;set;} / public class Role {[Key] public int ID {get;set;} public string RoleName {get;set;} public List UserRoles {get;set }} / user role relationship / public class UserRole {public int UserID {get; set;} public int RoleID {get; set;} public User User {get; set;} public Role Role {get; set;}}

At this point, you need to add data concatenated strings to the StartUp.cs to guide the server and database name when automatically generating the database.

Public void ConfigureServices (IServiceCollection services) {var connection = @ "Server=.;Database=PermissionDb;Trusted_Connection=True;"; services.AddDbContext (options = > options.UseSqlServer (connection)); services.AddMvc ();}

Now, Build the project and execute it in the package Manager console (vs menu tools-NuGet package Manager-package Manager console) with two commands:

Add-Migration MyFirstMigration

Used to generate commands, generate C # code for databases and tables

Update-Database

Execute the generated code

An error will be reported when using Add-MigrationMyFirstMigration. There is no required project configuration file (.json) in netcoreapp1.1. When you open the bin directory, you will find that there will be an extra win10-x64 folder under netcoreapp1.1. This is exactly what we manually added in project.json. Open this folder and copy the corresponding .json inside. (this should be when Add-MigrationMyFirstMigration generates code. The default search configuration file does not always result in the path where we manually add runtimes)

Add-Migration MyFirstMigration again after copying.

You will find that a folder Migrations has been added to the project and two files are generated below, which are the instructions needed to generate the database.

Now execute Update-Database again

When the execution is successful, use SQL Server's administrative tools to view the generated database, and the table relationships in the table are entered below:

Tags: Build data database file code project administration two folder command tool manual console user program role control configuration success next Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Shulou Tech Info OPPO Reno Microsoft Xiaomi macOS