.NetCore中EFCore的使用整理

EntirtyFramework框架是一个轻量级的可扩展版本的流行实体框架数据访问技术.

其中的.NetCore版本对应EntityFrameworkCore

Git源代码地址:https://github.com/aspnet/EntityFramework/

官方使用文档说明:https://docs.microsoft.com/zh-cn/ef/core/index

一、安装Nuget包

Install-package Microsoft.EntityFrameworkCore
Install-package Microsoft.EntityFrameworkCore.SqlServer
Micorsoft.EntityFrameworkCore:EF框架的核心包Micorsoft.EntityFrameworkCore.SqlServer:针对SqlServer数据库的扩展,使用SqlServer数据库必须。类似的还有MySql,SqlLite等Micorsoft.EntityFrameworkCore.Tools&Micorosft.EntityFrameworkCore.Design:用户根据现有的数据库生成模型代码等 ,更多参考 :https://docs.microsoft.com/zh-cn/ef/efcore-and-ef6/porting/port-edmx二、使用实例1.安装Nuget包之后,手动创建上下文,并 注入sql链接字符串
using Microsoft.EntityFrameworkCore;
namespace Core2
{
    public class TestContext : DbContext
    {
        //public TestContext(DbContextOptions<TestContext> options) : base(options)
        //{

        //}
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            //注入Sql链接字符串
            optionsBuilder.UseSqlServer(@"Server=.;Database=Test1;Trusted_Connection=True;");
        }
        public DbSet<Numeber1> Numeber1s { get; set; }
    }
}
2.手写实体类,只要数据库中 存在对应 的表就可以了
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Core2
{
    [Table("Numeber1")]
    public class Numeber1
    {
        [Key]
        public int ID { get; set; }
        public decimal Num1 { get; set; }
    }
}

3.测试代码:

static void TestOne()
{
    TestContext _context = new TestContext();
    int count = _context.Numeber1s.Count();
    Console.WriteLine(count);
}
static void TestTwo()
{
    DateTime start = DateTime.Now;
    TestContext _context = new TestContext();
    for (int i = 0; i < 10000; i++)
    {
        _context.Numeber1s.Add(new Numeber1()
        {
            Num1 = i
        });
        _context.SaveChanges();
    }
    Console.WriteLine(_context.Numeber1s.Count());
    Console.WriteLine("总时间,秒数:" + (DateTime.Now - start).TotalSeconds);
}

在调试的状态下1万条插入数据执行时间:

三、根据数据库生成模型1.安装EntityFrameworkCore.Design和EntityFrameworkCore.Tools2.选择对应的项目,执行生成命名
Scaffold-DbContext "Server=.;database=test1;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models2

3.生成结果如下 :

更多 :VS Code搭建.NetCore开发环境(二)VS Code搭建.NetCore开发环境(一)Chocolatey 简介(软件自动化管理工具)
时间: 2024-10-11 21:31:56

.NetCore中EFCore的使用整理的相关文章

.NetCore中EFCore for MySql整理(二)

一.简介 EF Core for MySql的官方版本MySql.Data.EntityFrameworkCore 目前正是版已经可用当前版本v6.10,对于以前的预览版参考:http://www.cnblogs.com/tianma3798/p/6940794.html 1.MySql的核心 安装 Install-Package MySql.Data.EntityFrameworkCore -Version 6.10.5 2.MySql的 生成工具安装 Install-Package MySq

.NetCore中EFCore的使用整理(三)-关联表操作

一.查询关联表数据 StudyAboard_TestContext _context = new StudyAboard_TestContext(); CrmRole role = _context.CrmRole .Include(q => q.CrmRoleMenu) .Where(q => q.Id == 1).FirstOrDefault(); 二.清空关联表数据 StudyAboard_TestContext _context = new StudyAboard_TestContex

.NetCore中EFCore for MySql整理

一.MySql官方提供了Ef Core对MySql的支持,但现在还处于预览版 Install-Package MySql.Data.EntityFrameworkCore -Pre Install-Package MySql.Data.EntityFrameworkCore.Design -Pre 当前程序包依赖Microsoft.EntityFrameworkCore,目前没找到API文档啥的,MySql.Data.EntityFrameworkCore.Design的用法也没 找到. Nug

Asp.Net Core中Json序列化处理整理

一.Asp.Net Core中的Json序列化处理使用的是Newtonsoft.Json,更多参考:C# Newtonsoft.Json JsonSerializerSettings配置序列化操作,C# Json序列化工具--Newtonsoft.Json简介和使用 1.Newtonsoft.Json仅 依赖.Net Standard所以支持.Net Framework也支持.Net Core 2.更多说明 /* * 1.在Core Mvc中JsonResult 默认支持Get请求 * 2.使用

Python中set集合的整理

set集合函数主要用来去除重复: 比如一个列表有多个重复值,可以用set搞掉 >>> l = [1,2,3,4,5,4,3,21] >>> >>> l [1, 2, 3, 4, 5, 4, 3, 21] >>> >>> >>> set(l) set([1, 2, 3, 4, 5, 21]) >>> set  可以做交集,并集,差集 set的增删改 增:>>> a

.NetCore中的日志(1)日志组件解析

.NetCore中的日志(1)日志组件解析 0x00 问题的产生 日志记录功能在开发中很常用,可以记录程序运行的细节,也可以记录用户的行为.在之前开发时我一般都是用自己写的小工具来记录日志,输出目标包含控制台.文本文件.数据库,一般都是创建全局的Logger,在需要记录日志的地方调用相应的Logger输出至相应目标.遇到输出目标多了有时候也感觉挺麻烦的,不过也还能接受.开始学习.NetCore后接触到了日志记录框架(Logging组件),虽然完全可以用之前的方式记录日志,不过应该使用更通用的方式

js-DOM中基础选择器的整理

DOM中基础选择器的整理 注意:DOM中选择器返回是数组类型的都是伪数组,只能拥有数组的索引以及length,数组的其他方法是不可以使用的! 一:DOM中的选择器 1.getElementById(id) //获取指定元素的ID元素 2.getElementsByTagName() //获取相同元素的节点列表,通过标签名选择元素,返回值是一个数组 3.getElementsByName() //通过name值获取元素,返回值是数组,通常用来获取有name的input的值 4.getElement

Storm学习中遇到的问题整理

在编写storm代码来进行实时分析的时候遇到了一些问题,有些的确令人比较头痛,现在稍微做一下整理.数据流向(本地-Spout-Bolt-Hdfs) 1数据的输入输出文件的路径选择 因为在此项目中数据是放在本地磁盘的,所有就有两种放数据的途径,一种是直接通过spout接受本地数据发送到任务中,另一种是先把文件数目进行整理(缩小)放到hdfs系统,让后通过spout读取hdfs里面的数据,后来实际表明前一种更加适合(后一种受到了mapreduce的影响),现在提一下后一种遇到的问题,后一种的话是sp

MYSQL中SHOW的使用整理收藏

好记性不如乱笔头吧....下面收藏整理了mysql中show 的使用技巧....有需要的博友可以看看哈 a. show tables或show tables from database_name; // 显示当前数据库中所有表的名称 b. show databases; // 显示mysql中所有数据库的名称 c. show columns from table_name from database_name; 或show columns from database_name.table_nam