简介: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
}
public virtual DbSet
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]主键
入门先记录这么多吧,后续继续学习。再更新增、删、改、查。挖掘的不深,莫怪。有个好心情很重要,希望有好见解。共同成长。