ASP.NET Core + EF Core学习总结

  • asp.net core +EF Sql Server 映射数据库实体类
  • NuGet中需安装包
    
    Microsoft.EntityFrameworkCore
    Microsoft.EntityFrameworkCore.SqlServer
    Microsoft.EntityFrameworkCore.Tools

  • ​
    在程序包管理器控制台中输入指令:
    Scaffold-DbContext "Server=.;Database=Database;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
    
    完整命令:
    Scaffold-DbContext "Server=IP地址;Database=数据库名;user id=sa;password=密码;Trusted_Connection=True;integrated security=false;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
    
    ​
  • asp.net core +EF MySql  映射数据库实体类
  • //首先在程序包包管理器控制台 中执行以下语句安装依赖包
    
    Install-Package MySql.Data.EntityFrameworkCore -Pre
    Install-Package Pomelo.EntityFrameworkCore.MySql
    Install-Package Microsoft.EntityFrameworkCore.Tools
    Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
    

  • //在程序包包管理器控制台 中执行以下语句生成 实体类
    
    Scaffold-DbContext "server=127.0.0.1;userid=root;pwd=root;port=3360;database=db_examtest;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -Force
    
    或者
    
    Scaffold-DbContext "server=localhost;userid=root;pwd=root;port=3306;database=shopdb;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -UseDatabaseNames -Force
    
    
    
    //说明
    -OutputDir *** 实体文件所存放的文件目录
    -ContextDir *** DbContext文件存放的目录
    -Context *** DbContext文件名
    -Schemas *** 需要生成实体数据的数据表所在的模式
    -Tables *** 需要生成实体数据的数据表的集合
    -DataAnnotations
    -UseDatabaseNames 直接使用数据库中的表名和列名(某些版本不支持)
    -Force 强制执行,重写已经存在的实体文件
    

  • asp.net core  读取配置文件 
  • 在appsettings.json下添加
  •   "ConnectionStrings": {
        "BaseDB": "Server=IP地址;Initial Catalog=Database;User ID=sa;Password=密码;Trusted_Connection=True;integrated security=false;MultipleActiveResultSets=true"
      }

  • 新建公用类库文件  读取配置文件的信息

  • 
        public class Config
        {
            #region 根据Key取Value值
            /// 
            /// 根据Key取Value值
            /// 
            /// 
            public static string GetValue(string key)
            {
                var configJson = GetJsonConfig();
                return configJson[key];
            }
            #endregion
    
            #region json配置文件读取
            /// 
            /// json配置文件读取
            /// 
            /// 
            /// 
            /// 
            public static IConfigurationRoot GetJsonConfig(string configFileName = "appsettings.json", string basePath = "")
            {
                basePath = string.IsNullOrWhiteSpace(basePath) ? Directory.GetCurrentDirectory() : basePath;
                var builder = new ConfigurationBuilder().SetBasePath(basePath).AddJsonFile(configFileName);
                return builder.Build();
            }
            #endregion
        }

  • 调用读取信息

            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                if (!optionsBuilder.IsConfigured)
                {
                    optionsBuilder.UseSqlServer(Config.GetValue("ConnectionStrings:BaseDB"));
                }
            }

    各种数据库连接字符串(EFCore)

    sqlite:Data Source=./Furion.db
    MySql:Data Source=localhost;Database=Furion;User ID=root;Password=000000;pooling=true;port=3306;sslmode=none;CharSet=utf8;
    SqlServer:Server=localhost;Database=Furion;User=sa;Password=000000;MultipleActiveResultSets=True;
    Oracle:User Id=orcl;Password=orcl;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))
    PostgreSQL:PORT=5432;DATABASE=postgres;HOST=127.0.0.1;PASSWORD=postgres;USER ID=postgres;
    

    收集资料

  • http://apk.neters.club/.doc/guide/cheat-sheet.html#aop 【Blog.Core】
    http://www.volcore.xyz/document/guide
    官方文档:http://apk.neters.club/.doc/
    开源地址:https://github.com/anjoy8/Blog.Core
    开源地址:https://github.com/cq-panda/vue.netcore
    文档中心 https://docs.osharp.org/quick/start/
    开源地址 https://github.com/dotnetcore/OSharp
    博客园:https://www.cnblogs.com/laozhang-is-phi/
    Bilibili:https://space.bilibili.com/387802716
    直播间:https://live.bilibili.com/21507364
    
    
    
    https://blog.csdn.net/qq_18932003/article/details/120596076?spm=1001.2101.3001.6650.15&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-15-120596076-blog-123607335.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-15-120596076-blog-123607335.pc_relevant_antiscanv2&utm_relevant_index=19
    
    https://blog.csdn.net/sD7O95O/article/details/122773322?spm=1001.2101.3001.6650.17&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-17-122773322-blog-106839384.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-17-122773322-blog-106839384.pc_relevant_default&utm_relevant_index=23 

    在 ASP.NET Core WebAPI 中使用 JWT 验证 

  • 在 ASP.NET Core WebAPI 中使用 JWT 验证_风神修罗使的博客-CSDN博客_asp.net core jwt验证token为了保护 WebAPI 仅提供合法的使用者存取,有很多机制可以做,透过 JWT (JSON Web Token) 便是其中一种方式,这篇示范如何使用官方所提供的 System.IdentityModel.Tokens.Jwt 扩充套件,处理呼叫 API 的来源是否为合法的使用者身分。顺道一提,要产生 JWT Token 有很多套件可以帮助开发者快速建立,JWT 这个 NuGet 套件就是其中一个,但这裡我使用官方所提供的 System.IdentityModel.Tokens.Jwt 扩充套件来处理,虽然https://blog.csdn.net/WuLex/article/details/123573887

  EF Core如何输出日志到Visual Studio的输出窗口https://www.cnblogs.com/jiangyunfeng/p/12572408.html

         EF(EFCore)性能优化与高级用法

EF(EFCore)性能优化与高级用法_风神修罗使的博客-CSDN博客_efcore高级用法1、使用AsNoTracking()使用AsNoTracking()后,将不监听对象的状态(是否被改变);当确定查询出来的数据不会改变的时候使用AsNoTracking();使用context.Entry(user).State 查看对象监听状态。关闭所有监听:context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;开启所有监听:context.ChangeTracker.Qhttps://blog.csdn.net/WuLex/article/details/112499052?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-112499052-blog-118071514.pc_relevant_antiscanv2&spm=1001.2101.3001.4242.1&utm_relevant_index=3

        计算注册时间距离现在多少天多少月多少年的方法: 

          /// 
          /// 获取据当前时间的时间间隔:如1年1月1日
        /// 
        /// 
        /// 
        /// 
        /// 
        public static string FormatDateToNow(this DateTime date, int yearNum = 365, int monthNum = 31)
        {
            var subTime = DateTime.Now.Subtract(date);

            var dayNum = subTime.Days;

            var year = dayNum / yearNum;
            var month = dayNum % yearNum / monthNum;
            var day = dayNum % yearNum % monthNum;

            var str = year > 0 ? $"{year}年" : "";
            str += month > 0 ? $"{month}月" : "";
            str += day > 0 ? $"{day}天" : "1天";

            return str;
        }

解决ConfigurationManager”未包含“AppSettings”的定义

右击项目的解决方案->点击(管理解决方案的NuGet程序包)

在解决方案中搜索ConfigurationManager

 将依赖包导入
using ConfigurationManager = System.Configuration.ConfigurationManager;

using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using ConfigurationManager = System.Configuration.ConfigurationManager;

你可能感兴趣的:(netcore,sqlserver,数据库,asp.net,.net,core)