简介:Entity Framework 是一种支持 .NET 开发人员使用 .NET 对象处理数据库的对象关系映射程序 (O/RM)。 它不要求提供开发人员通常需要编写的大部分数据访问代码。

其中有EFCore和EF6(最新版本)。都是虚的详细的看管方文档有详细说明:https://docs.microsoft.com/zh-cn/ef/#pivot=entityfmwk&panel=entityfmwk1

下面分开介绍二者之间,的开始准备步骤。

1.Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术

EF Core 是一个 .NET Standard 2.0 库,需要项目 .NET Standard 2.0 支持。

使用 工具- NuGet-程序包管理器-执行命令导入所需NuGet --Visual Studio NuGet 包管理器控制台)

(1)用的 SQL Server,使用以下 .NET Core CLI 命令来安装或更新 EF Core SQL Server 提供程序:

Install-Package Microsoft.EntityFrameworkCore.SqlServer

(2)连接mysql数据库

Install-Package MySql.Data.EntityFrameworkCore
或者使用第三方:
Install-Package Pomelo.EntityFrameworkCore.MySql

2.数据库连接

(1)配置文件,进行配置

{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"DBSetting": {
"ConnectString": "server=127.0.0.1;port=3306;UserId=test;password=root;Database=ding"
},//mysql本地连接
"AllowedHosts": "*"
}
//UseSqlServer连接:Server=(localdb)\mssqllocaldb;Database=Blogging;Integrated Security=True

(2)连接代码

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
namespace DingService.Models
{
public partial class DingAuthorizeDb : DbContext
{
public DingAuthorizeDb()
{
}

public DingAuthorizeDb(DbContextOptions<DingAuthorizeDb> options) : base(options) {

}
public virtual DbSet<UsrInfo> usrInfo { set; get; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
//加载appsetting.json
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json").Build();

string connectionString = configuration["DBSetting:ConnectString"];
#region nysql 数据库连接 由于本项目中使用的本地mysql进行项目调试。sql server暂时注释
optionsBuilder.UseMySQL(connectionString);
#endregion
#region nysql 数据库连接
// optionsBuilder.UseSqlServer(connectionString);
#endregion
base.OnConfiguring(optionsBuilder);
}
}

}
}

以上供自己备忘:

下面简述自己在从0中遇到的问题以及补足

1.首先要分清自己想要做什么。开发过程中一直用optionsBuilder.UseSqlServer方法连接我的mysql数据库(没有注意专有方法)。在连接数据库的时候总会出现

A network-related or instance-specific error occurred while establishing a connection to SQL Server

大意就是无法连接sql server数据库, 现在看就已经很明显了。因为我没用(额--好像不对。是没用sql server数据库 还用optionsBuilder.UseSqlServer方法)撒币了

没有区分mysql与sql server区别

现在简单补充下区别:

<1>.首先部分语法存在差别(基本语法相同)可参考:https://blog.csdn.net/qq_40985788/article/details/82717462(引用,谢谢)

<2>.剩下的就是一些历史背景原因了。(可以百度参考)

3.再记录下数据库连接成功后的俩异常吧

 <1>An error occurred while updating the entries. See the inner exception for details 查看model数据类型是否和数据库的数据类型是否一致

 <2>The entity type 'UsrInfo' requires a primary key to be defined.  解决方案: 查看model数据中是否没有定义[key]主键

  

入门先记录这么多吧,后续继续学习。再更新增、删、改、查。挖掘的不深,莫怪。有个好心情很重要,希望有好见解。共同成长。

EF启程--概念理解(数据库连接)的更多相关文章

  1. 大数据核心知识点:Hbase、Spark、Hive、MapReduce概念理解,特点及机制

    今天,上海尚学堂大数据培训班毕业的一位学生去参加易普软件公司面试,应聘的职位是大数据开发.面试官问了他10个问题,主要集中在Hbase.Spark.Hive和MapReduce上,基础概念.特点.应用 ...

  2. SpringIOC的概念理解、构造器注入、setter注入、p命名空间注入、IOC容器介绍与比较

    1.IOC概念理解 IOC(Inversion of Control)即“控制反转”,不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象 ...

  3. Kubernetes重要概念理解

    Kubernetes重要概念理解 kubernetes是目前最主流的容器编排工具,是下一代分布式架构的王者.2018年的kubernetes第一个版本1.10已经发布.下面整理一下,kubernete ...

  4. SNF快速开发平台2019-角色、权限、账户的概念理解-非常全的理论讲解权限控制

    组织模型   资源模型  操作模型 谁能够执行哪些操作    执行资源的范围 资源概念资源就是想要的到的最终物质,我们可以给每一个资源定义一个权限,也可以给某一类资源定义一个权限 权限概念权限是对资源 ...

  5. elasticsearch基本概念理解+elasticsearch 的shards unassigned处理方法 -- 最佳运维实践 - 集群规划

    1.es与MySQL的概念对比 2.概念理解 2.1 Index : 一个索引即是文档的集合 2.2 Document : 一个文档即是一个可被索引的基础单元信息,一条记录: 2.3 Replicas ...

  6. fragment概念理解

    fragment概念理解知识,fragment概念理解图片 fragment概念理解内容,fragment概念理介绍,fragment概念理正文 Fragment是Android honeycomb ...

  7. ubuntn系统下将文件拷贝到优盘中及挂载概念理解

    参考资料:http://jingyan.baidu.com/article/7082dc1c76f178e40a89bdd3.html: http://bbs.csdn.net/topics/3801 ...

  8. Ceph 概念理解

    简介 Ceph是一个可靠地.自动重均衡.自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储.块设备存储和文件系统服务. 在虚拟化领域里,比较常用到的是Ceph的块设备存储, ...

  9. 理解数据库连接池和ThreadLocal实现的事务控制

    我发现 不少人 误解了这两者. csdn上也有人提出过这种疑问: http://bbs.csdn.net/topics/250061733 经过查阅资料和认真分析,我特说明一下这两者概念上的区别. 我 ...

随机推荐

  1. CentOS 7下简答搭建DNS服务器

    一.DNS相关介绍 DNS(Domain Name System)域名系统协议,作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用挨个记住IP地址.通过主机名,最终得到 ...

  2. 3-8 pivot操作

      数据透视表¶ In [1]: import pandas as pd excelample=pd.DataFrame({'Month':["January","Jan ...

  3. 简单的基于promise的ajax封装

    基于promise的ajax封装 //调用方式: /* ajaxPrmomise({ url:, method:, headers:{} }).then(res=>{}) */ ;(functi ...

  4. [基础]斯坦福cs231n课程视频笔记(一) 图片分类之使用线性分类器

    线性分类器的基本模型: f = Wx Loss Function and Optimization 1. LossFunction 衡量在当前的模型(参数矩阵W)的效果好坏 Multiclass SV ...

  5. linux基础-ssh服务

    SSH ssh 服务是实现管路服务器的一种方式: 本地管理(安装系统,故障修复),ssh 远程连接 linux 可以是实现远程连接的方式:ssh 命令 windows 可以实现远程连接方式: xshe ...

  6. Nginx配置文件nginx.conf(八)

    原文链接:https://www.cnblogs.com/knowledgesea/p/5175711.html 在nginx.conf的注释符号是#. 默认的nginx.conf内容为: #user ...

  7. socket缓冲区以及阻塞模式(七)

    一.socket缓冲区 每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区. 以下用write()/send()表示写数据/发送数据,read()/recv() 表示读数据/接收 ...

  8. 每天一道Rust-LeetCode(2019-06-08)

    每天一道Rust-LeetCode(2019-06-08) 91. 解码方法 坚持每天一道题,刷题学习Rust. 题目描述 https://leetcode-cn.com/problems/decod ...

  9. 关于js的<、>、=、<=、>=的比较

    判断两个值的大小的时候.需要先转换为同一类型.比如parseInt转换. 示例:if(a<b)  if(parseInt(a)<parseInt(b)) 后一种方式不容易出错.

  10. Gym101002E:K-Inversions

    \(Gym101002E:K-Inversions\) 题意描述: 题目连接链接 给定一个长度为\(N\)只包含\(AB\)的字符串,某个\(A\)的位置为\(j\),某个\(B\)的位置为\(i\) ...