簡介:Entity Framework 是一種支持 .NET 開發人員使用 .NET 對象處理資料庫的對象關係映射程式 (O/RM)。 它不要求提供開發人員通常需要編寫的大部分數據訪問代碼。 其中有EFCore和EF6(最新版本)。都是虛的詳細的看管方文檔有詳細說明:https://docs.mic ...
簡介: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]主鍵
入門先記錄這麼多吧,後續繼續學習。再更新增、刪、改、查。挖掘的不深,莫怪。有個好心情很重要,希望有好見解。共同成長。