欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

EF启程--概念理解(数据库连接)

程序员文章站 2022-03-20 12:14:02
简介:Entity Framework 是一种支持 .NET 开发人员使用 .NET 对象处理数据库的对象关系映射程序 (O/RM)。 它不要求提供开发人员通常需要编写的大部分数据访问代码。 其中有EFCore和EF6(最新版本)。都是虚的详细的看管方文档有详细说明:https://docs.mic ......

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

其中有efcore和ef6(最新版本)。都是虚的详细的看管方文档有详细说明:

EF启程--概念理解(数据库连接)

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

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]主键

 

  

 

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