zoukankan      html  css  js  c++  java
  • 九、.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连接多个数据库参考:

  • 相关阅读:
    分页SQL取下一页
    取第10行到100行
    Flash Builder4.0新建Flex应用程序切换主题出错
    C++浮点数(float、double)类型数据比较、转换分析总结
    浮点数的大小比较
    052新题1
    一致读原理
    Redis配置文件解读
    Redis系列-远程连接redis并给redis加锁
    svn提交更新原则
  • 原文地址:https://www.cnblogs.com/fger/p/10630976.html
Copyright © 2011-2022 走看看