EF启程--概念理解(数据库连接)
简介: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启程--概念理解(数据库连接)的更多相关文章
- 大数据核心知识点:Hbase、Spark、Hive、MapReduce概念理解,特点及机制
今天,上海尚学堂大数据培训班毕业的一位学生去参加易普软件公司面试,应聘的职位是大数据开发.面试官问了他10个问题,主要集中在Hbase.Spark.Hive和MapReduce上,基础概念.特点.应用 ...
- SpringIOC的概念理解、构造器注入、setter注入、p命名空间注入、IOC容器介绍与比较
1.IOC概念理解 IOC(Inversion of Control)即“控制反转”,不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象 ...
- Kubernetes重要概念理解
Kubernetes重要概念理解 kubernetes是目前最主流的容器编排工具,是下一代分布式架构的王者.2018年的kubernetes第一个版本1.10已经发布.下面整理一下,kubernete ...
- SNF快速开发平台2019-角色、权限、账户的概念理解-非常全的理论讲解权限控制
组织模型 资源模型 操作模型 谁能够执行哪些操作 执行资源的范围 资源概念资源就是想要的到的最终物质,我们可以给每一个资源定义一个权限,也可以给某一类资源定义一个权限 权限概念权限是对资源 ...
- elasticsearch基本概念理解+elasticsearch 的shards unassigned处理方法 -- 最佳运维实践 - 集群规划
1.es与MySQL的概念对比 2.概念理解 2.1 Index : 一个索引即是文档的集合 2.2 Document : 一个文档即是一个可被索引的基础单元信息,一条记录: 2.3 Replicas ...
- fragment概念理解
fragment概念理解知识,fragment概念理解图片 fragment概念理解内容,fragment概念理介绍,fragment概念理正文 Fragment是Android honeycomb ...
- ubuntn系统下将文件拷贝到优盘中及挂载概念理解
参考资料:http://jingyan.baidu.com/article/7082dc1c76f178e40a89bdd3.html: http://bbs.csdn.net/topics/3801 ...
- Ceph 概念理解
简介 Ceph是一个可靠地.自动重均衡.自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储.块设备存储和文件系统服务. 在虚拟化领域里,比较常用到的是Ceph的块设备存储, ...
- 理解数据库连接池和ThreadLocal实现的事务控制
我发现 不少人 误解了这两者. csdn上也有人提出过这种疑问: http://bbs.csdn.net/topics/250061733 经过查阅资料和认真分析,我特说明一下这两者概念上的区别. 我 ...
随机推荐
- python学习2-数据库配置操作
1.创建实体类models-自定义数据库的字段与名称 class Register (models.Model): idCard=models.CharField(max_length=18) pwd ...
- Excel数据导入到Sql server
问题:数据库内直接操作导致 错误 0xc020901c: 数据流任务 1: 源 - yndata1$.输出[Excel 源输出] 上的 源 - yndata1$.输出[Excel 源输出].列[ind ...
- 201871010124-王生涛《面向对象程序设计(java)》第四周学习总结
项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址>http ...
- 面向对象程序设计(Java) 第4周学习指导及要求
2019面向对象程序设计(Java)第4周学习指导及要求(2019.9.17-2019.9. 23) 学习目标 掌握类与对象的基础概念,理解类与对象的关系: 掌握对象与对象变量的关系: 掌握预定义类 ...
- springboot整合邮件
一.邮件相关知识补充 SMTP(Simple Mail Transfer Protocol) 即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.SMTP协议属 ...
- Netty的常用API(二)
在使用Netty之前先介绍下Netty的常用API,对其有一个大概的了解. 一.EventLoop和EventLoopGroup EventLoop如同它的名字,它是一个无限循环(Loop),在循环中 ...
- JetBrains优惠码分享
A quick summary [feel free to pass it on to your team]: Your Promo code is: S2W69-N3VY3-YGACY-7WC7X- ...
- JDOJ 1958 机器分配
JDOJ 1958: 机器分配 Description 某总公司拥有高效生产设备M台,准备分给下属的N个分公司.各分公司若获得这些设备,可以为总公司提供一定的盈利.问:如何分配这M台设备才能使国家得到 ...
- WebJars简介 —— 前端资源的jar包形式(以后接触到再深入总结)
对于日常的web开发而言,像css.js.images.font等静态资源文件管理是非常的混乱的.比如jQuery.Bootstrap.Vue.js等,可能每个框架使用的版本都不一样.一不注意就会出现 ...
- POJ3630-Phone List-(字典树)
一直没有学字典树,听起来很唬人,闲来无事找一道入门题做做. 字典树:又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以 ...