EF启程--概念理解(数据库连接)
简介:entity framework 是一种支持 .net 开发人员使用 .net 对象处理数据库的对象关系映射程序 (o/rm)。 它不要求提供开发人员通常需要编写的大部分数据访问代码。
其中有efcore和ef6(最新版本)。都是虚的详细的看管方文档有详细说明:
下面分开介绍二者之间,的开始准备步骤。
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>.首先部分语法存在差别(基本语法相同)可参考:(引用,谢谢)
<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]主键
入门先记录这么多吧,后续继续学习。再更新增、删、改、查。挖掘的不深,莫怪。有个好心情很重要,希望有好见解。共同成长。
上一篇: 在厂里和老板的岳父打起来了
下一篇: 公司组织年底的文艺会演彩排
推荐阅读
-
C#使用EF连接PGSql数据库的完整步骤
-
使用EF CodeFirst连接MySql数据库
-
C# EF 加密连接数据库连接字符串
-
MVC+EF6-CodeFirst 连接MySQL并创建数据库和表_Demo
-
EF 数据库连接MySql
-
使用VS2013 + EF6 连接Mysql数据库
-
EF 配置Oracle数据库数据库连接字符串的实例
-
Asp.net core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库
-
ASP.NET MVC EF 连接数据库(三)-----Code First
-
ASP.NET MVC EF 连接数据库(一)-----Database First