九、.net core用orm继承DbContext(数据库上下文)方式操作数据库

一、创建一个DataContext普通类继承DbContext

九、.net core用orm继承DbContext(数据库上下文)方式操作数据库

 安装程序集:Pomelo.EntityFrameworkCore.MySql  

二、配置连接字符串(MySql/SqlServer都可以)

九、.net core用orm继承DbContext(数据库上下文)方式操作数据库

using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; namespace DotNetCore.Models
{
public class DataContext:DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
//配置MySql连接字符串/SqlServer连接字符串皆可
optionsBuilder.UseMySql("Server=47.94.174.85;Database=testDb; User=testDb;Password=testDb;");
}
public class t_testModel
{
public int id { get; set; }
public string name { get; set; }
public string pass { get; set; }
}
//添加表实体
public DbSet<t_testModel> friends { get; set; }
}
}  

这里注意:

optionsBuilder.UseMySql("Server=47.94.174.85;Database=testDb; User=testDb;Password=testDb;");//的你要安装Pomelo.EntityFrameworkCore.MySql 
optionsBuilder.UseMySQL("Server=47.94.174.85;Database=testDb; User=testDb;Password=testDb;");//的你要安装MySql.Data.EntityFrameworkCore   这个UserMYSQL中MYSQL是大写的

三、在控制器里面写查询操作

            DataContext context = new DataContext();

            List<t_testModel> list = context.friends.ToList();
return Content(list.ToString());

九、.net core用orm继承DbContext(数据库上下文)方式操作数据库

四、数据库表对应的结构

DROP TABLE IF EXISTS `friends`;
CREATE TABLE `friends` (
`id` int(3) NOT NULL,
`name` varchar(8) NOT NULL,
`pass` varchar(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `friends` VALUES ('4', '王六', 'dasd');

总结所作的操作

1、创建DataContext类继承DbContext(一个类文件)  

2、控制器里面写查询操作

四、数据连接属性应该存放在appsettings.json内

1、更改DbContext类内容如下所示

using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; namespace DotNetCore.Models
{
public class DataContext : DbContext
{
public DataContext(DbContextOptions options)
: base(options)
{
} public class t_testModel
{
public int id { get; set; }
public string name { get; set; }
public string pass { get; set; }
}
//添加表实体
public DbSet<t_testModel> friends { get; set; }
}
}

2、appsettings.json文件更改如下

{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"DefaultConnection": "Server=47.94.174.85;Database=testDb; User=testDb;Password=testDb;"
}
}

  

3、将Startup类里面的ConfigureServices替换成下列代码  

        public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<DataContext>(options =>
options.UseMySql(Configuration.GetConnectionString("DefaultConnection")));
services.AddMvc();
}

 注意:鼠标放上去继续点击引用

九、.net core用orm继承DbContext(数据库上下文)方式操作数据库

4、控制器实现代码

            DataContext context = new DataContext();

            List<t_testModel> list = context.friends.ToList();
return Content(list.ToString());

  九、.net core用orm继承DbContext(数据库上下文)方式操作数据库

九、.net core用orm继承DbContext(数据库上下文)方式操作数据库

我们点击运行吧 我们发现还是不可用。

我们换一种方式运行

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using DotNetCore.Models;
using static DotNetCore.Models.DataContext; namespace DotNetCore.Controllers
{
public class HomeController : Controller
{ public readonly DataContext _context;
//构造函数,依赖注入数据库上下文就可以了
public HomeController(DataContext context)
{
_context = context;
} public IActionResult Index()
{
List<t_testModel> list = _context.friends.ToList();
return Content(list.ToString());
return View();
} public IActionResult About()
{
ViewData["Message"] = "Your application description page."; return View();
} public IActionResult Contact()
{
ViewData["Message"] = "Your contact page."; return View();
} public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}

九、.net core用orm继承DbContext(数据库上下文)方式操作数据库  

asp.netCore连接多个数据库参考:

九、.net core用orm继承DbContext(数据库上下文)方式操作数据库

上一篇:ubuntu 18.04 安装mysql 8.0


下一篇:PHP开发环境&MySQL下载安装及配置流程