简介: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]主键

 

  

 

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