EF啟程--概念理解(數據庫連接)


簡介: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]主鍵

 

  

 

入門先記錄這么多吧,后續繼續學習。再更新增、刪、改、查。挖掘的不深,莫怪。有個好心情很重要,希望有好見解。共同成長。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM