简介: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. 2.监控软件zabbix-服务端安装

    环境准备 Zabbix服务端环境要求: Red Hat Enterprise Linux CentOS Oracle Linux Debian Ubuntu 注意,要安装的Zabbix服务器需要联网, ...

  2. linux 线程基础

    线程基础函数 查看进程中有多少个线程,查看线程的LWP ps -Lf 进程ID(pid) 执行结果:LWP列 y:~$ ps -Lf 1887 UID PID PPID LWP C NLWP STIM ...

  3. Java前后端的跨域问题

    1 前端127.0.0.1:8888 2 后端127.0.0.1:8080 前端和后端因为来自不同的网域,所以在http的安全协议策略下,不信任 3 解决方案,在springmvc的控制层加入@Cro ...

  4. Swagger从入门到放弃

    如何编写基于OpenAPI规范的API文档 简介 Swagger Swagger是一个简单但功能强大的API表达工具.支持的语言种类繁多 使用Swagger生成API,我们可以得到交互式文档,自动生成 ...

  5. 关于苹果macOS更新到Catalina后出现的各种问题(持续更新)

    一.Mac系统更新后 Git 不能用,提示 missing xcrun at:xxx xcrun: error: invalid active developer path (/Library/Dev ...

  6. JS高阶---this对象

    this对象指向 重点:谁调用this,则指向谁 (1)案例代码: (2)分析: (3)案例2 (4)相关问题 .

  7. Tools分类随笔链接整理贴(不定期更新)

    1.编程开发工具 Vs2012安装介绍   https://www.cnblogs.com/fzxiaoyi/p/12041854.html Vs2012帮助文档安装介绍  https://www.c ...

  8. 缓存原理,自己写一个缓存类(c#版)

    .net中的MemoryCache是通过内部封装一个静态Dictionary 自己写一个缓存,来看看内部怎么实现的 public class CustomerCache : ICache { priv ...

  9. html--前端jquery初识

    一.把 jQuery 添加到您的网页如需使用 jQuery,需要下载 jQuery 库,然后把它包含在希望使用的网页中.jQuery 库是一个 JavaScript 文件,您可以使用 HTML 的 & ...

  10. biopython处理中蜂基因组

    1.安装包 pip install bcbio-gff pprint 2.显示中蜂的序列 from Bio import SeqIO genome_name = 'GCF_001442555.1_AC ...