c 使用ef框架操作mysql数据库_ASP.NET CORE EF操作数据库

CodeFirst

0. 安装EF框架Install-Package Microsoft.EntityFrameworkCore.SqlServer

Install-Package Microsoft.EntityFrameworkCore.Tools

Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design

1. 创建Model实体public class Student

{

public int ID { get; set; }

public string LastName { get; set; }

public string FirstMidName { get; set; }

public DateTime EnrollmentDate { get; set; }

public ICollection Enrollments { get; set; }

}

public class Course

{

[DatabaseGenerated(DatabaseGeneratedOption.None)]

public int CourseID { get; set; }

public string Title { get; set; }

public int Credits { get; set; }

public ICollection Enrollments { get; set; }

}

public enum Grade

{

A, B, C, D, F

}

public class Enrollment

{

public int EnrollmentID { get; set; }

public int CourseID { get; set; }

public int StudentID { get; set; }

public Grade? Grade { get; set; }

public Course Course { get; set; }

public Student Student { get; set; }

}

2. 创建数据上下文public class SchoolContext : DbContext

{

public SchoolContext(DbContextOptions options) : base(options)

{

}

public DbSet Courses { get; set; }

public DbSet Enrollments { get; set; }

public DbSet Students { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)

{

modelBuilder.Entity().ToTable("Course");

modelBuilder.Entity().ToTable("Enrollment");

modelBuilder.Entity().ToTable("Student");

}

}

3. 依赖注入

打开Setup.cs文件services.AddDbContext(options =>

options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

4. 创建连接字符串

打开appsettings.json文件{

"ConnectionStrings": {

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

},

"Logging": {

"IncludeScopes": false,

"LogLevel": {

"Default": "Warning"

}

}

}

5. 创建数据库

打开工具 -> NuGet包管理 -> 包管理控制台Add-Migration InitialCreate

Update-Database

如果过程中出现错误:The term 'add-migration' is not recognized as the name of a cmdlet,重启Visual Studio解决。

6. 创建控制器在解决方案资源管理器中,右键单击控制器文件夹,然后选择添加>控制器。

选择视图使用 Entity Framework 的 MVC 控制器,然后单击确定。

将模型类设置为Student,将数据上下文类设置为 StudentContext。

单击 添加。

选中wwwroot右键浏览器查看,输入你的控制器和地址即可,或者直接点击运行。

DbFirst

0. 安装EF框架Install-Package Microsoft.EntityFrameworkCore.SqlServer

Install-Package Microsoft.EntityFrameworkCore.Tools

Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design

1. 初始化数据库CREATE DATABASE [Blogging];

GO

USE [Blogging];

GO

CREATE TABLE [Blog] (

[BlogId] int NOT NULL IDENTITY,

[Url] nvarchar(max) NOT NULL,

CONSTRAINT [PK_Blog] PRIMARY KEY ([BlogId])

);

GO

CREATE TABLE [Post] (

[PostId] int NOT NULL IDENTITY,

[BlogId] int NOT NULL,

[Content] nvarchar(max),

[Title] nvarchar(max),

CONSTRAINT [PK_Post] PRIMARY KEY ([PostId]),

CONSTRAINT [FK_Post_Blog_BlogId] FOREIGN KEY ([BlogId]) REFERENCES [Blog] ([BlogId]) ON DELETE CASCADE

);

GO

INSERT INTO [Blog] (Url) VALUES

('http://blogs.msdn.com/dotnet'),

('http://blogs.msdn.com/webdev'),

('http://blogs.msdn.com/visualstudio')

GO

2. 反向工程生成代码

工具–>NuGet 包管理器–>包管理器控制台Scaffold-DbContext "Server=(localdb)mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

如果遇到错误The term 'Scaffold-DbContext' is not recognized as the name of a cmdlet,请重启Visual Studio!

3. 依赖注入

打开Setup.cs文件services.AddDbContext(options =>

options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

4. 创建连接字符串

打开appsettings.json文件{

"ConnectionStrings": {

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

},

"Logging": {

"IncludeScopes": false,

"LogLevel": {

"Default": "Warning"

}

}

}

5. 创建控制器在解决方案资源管理器中,右键单击控制器文件夹,然后选择添加>控制器。

选择视图使用 Entity Framework 的 MVC 控制器,然后单击确定。

将模型类设置为Blogs,将数据上下文类设置为 BlogsContext。

单击 添加。

选中wwwroot右键浏览器查看,输入你的控制器和地址即可,或者直接点击运行。

结果

baae7cdd4a8eadd6a67b64acd9626da2.png

f0986e0c6463ded2d5598cd73aa1659c.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值