九、.net core用orm继承DbContext(数据库上下文)方式操作数据库
一、创建一个DataContext普通类继承DbContext
安装程序集:Pomelo.EntityFrameworkCore.MySql
二、配置连接字符串(MySql/SqlServer都可以)
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());
四、数据库表对应的结构
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();
}
注意:鼠标放上去继续点击引用
4、控制器实现代码
DataContext context = new DataContext(); List<t_testModel> list = context.friends.ToList();
return Content(list.ToString());
我们点击运行吧 我们发现还是不可用。
我们换一种方式运行
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 });
}
}
}
asp.netCore连接多个数据库参考:
九、.net core用orm继承DbContext(数据库上下文)方式操作数据库的更多相关文章
- 重学 Java 设计模式:实战中介者模式「按照Mybaits原理手写ORM框架,给JDBC方式操作数据库增加中介者场景」
作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 同龄人的差距是从什么时候拉开的 同样的幼儿园.同样的小学.一样 ...
- 第二百七十九节,MySQL数据库-pymysql模块操作数据库
MySQL数据库-pymysql模块操作数据库 pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式: 模块名称.connec ...
- Win10 64位系统ADO方式操作数据库失败解决方法
VC操作Access数据库一般通过ODBC.ADO.DAO等方式,但在我的Win10 64位操作系统中,通过ADO方式操作数据库会失败,无法读取数据.解决方法:1.首先确保Win10操作系统ado目录 ...
- Android学习之基础知识九 — 数据存储(持久化技术)之使用LitePal操作数据库
上一节学习了使用SQLiteDatabase来操作SQLite数据库的方法,接下来我们开始接触第一个开源库:LitePal.LitePal是一款开源的Android数据库框架,它采用了对象关系映射(O ...
- 重学 Java 设计模式:实战代理模式「模拟mybatis-spring中定义DAO接口,使用代理类方式操作数据库原理实现场景」
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 难以跨越的瓶颈期,把你拿捏滴死死的! 编程开发学习过程中遇到的瓶颈期,往往是由于看不 ...
- 11月7日下午PHP----PDO访问方式操作数据库
MySQLI是专门访问MySQL数据库的,不能访问其它数据库.PDO可以访问多种的数据库,它把操作类合并在一起,做成一个数据访问抽象层,这个抽象层就是PDO,根据类操作对应的数据库.mysqli是一个 ...
- python_协程方式操作数据库
# !/usr/bin/python3 # -*- coding: utf-8 -*- import requests import gevent import pymysql from gevent ...
- 关于使用CodeFirst,修改类或上下文时操作数据库报错解决方法
在操作已经创建好的数据库时,若是添加新的实体类或者修改原有数据库上下文,会报如下错误: The model backing the 'StudentDbContext' context has cha ...
- MySQL数据库-pymysql模块操作数据库
pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式: 模块名称.connect() 参数: host=数据库ip port= ...
随机推荐
- scipy 安装错误及解决
pip 安装 scipy 时,因为是编译安装,所以如果缺少一些编译库,会报很多错误,以下总结可能缺失的安装包: sudo apt-get install gfortran sudo apt-get i ...
- day11---函数对象、名称空间、作用域、闭包函数
一.函数对象: 定义:函数对象就是函数名,函数名就是存放了函数的内存地址,存放了内存地址的变量就是对象 函数对象的应用: 可以直接被引用:(fn = cp_fn) 可以当做参数传递传递: comput ...
- 前向星&链式前向星
参考博文: https://blog.csdn.net/acdreamers/article/details/16902023 前向星 len[i]以i为起点的边在数组中的存储长度 head[i]以i ...
- postman简介及基本用法
从分层测试角度来说,接口测试是相对来说性价比最高的,且作为功能测试进阶的必备技能,接口测试值得大家都去学习掌握. 工欲善其事,必先利其器,好的工具能更好的帮助工程师更高效率的完成工作. 常见的接口测试 ...
- odoo8 和odoo10区别
V8 函数:'sale_order_count': fields.function(_sale_order_count, string='# of Sales Order', type='integ ...
- Vue-插槽学习
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 内网IP外网IP的关联及访问互联网原理
首先解释一下“内网”与“外网”的概念: 内网:即所说的局域网,比如学校的局域网,局域网内每台计算机的IP地址在本局域网内具有互异性,是不可重复的.但两个局域网内的内网IP可以有相同的. 外网:即互联网 ...
- koa文件上传中间件——koa-multer
koa-multer用法基本和multer一致,npm里koa-multer的用法介绍比较简单,可以参考multer的用法 const Koa = require('koa'); const Rout ...
- Python—反射
反射 1 什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它 ...
- 《梦断代码》Scott Rosenberg著(三)
开放与封闭之论: 程序源代码是商业软件公司最重要的资产,所以软件公司售卖二进制文件.这样也就意味着如果微软的软件产品出了问题,即便你是一个程序大牛也无法修复它.你只能等着微软来修正问题,因为只有微软程 ...