免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

C#.NET ORM 如何訪問 Access 數(shù)據(jù)庫 [FreeSql]

最近很多 .net QQ 群無故被封停,特別是 wpf 群幾乎全軍覆沒 。依樂祝的 .net6交流群,曉晨的 .net跨平臺交流群,導(dǎo)致很多碼友流離失所無家可歸,借此機會使用一次召喚術(shù),有需要的請加群:560611514【.NET C#愛好者】,6406277【C#/.Net Core社區(qū)】,822074314【DotNet開發(fā)交流群】
前言看到標(biāo)題點進來,也許有人問,為什么不用 mysql,為什么不用 sqlite,為什么不這樣那樣 。
其實有時候情非得已,被迫使用不由得自己選擇,沒有誰天天做新項目,新項目當(dāng)然不會選 Access 數(shù)據(jù)庫,復(fù)雜的業(yè)務(wù)群體對方發(fā)送過來的文件是 Access 也沒得選,難道可以要求對方公司換數(shù)據(jù)庫?
Microsoft Office Access是由微軟發(fā)布的關(guān)系數(shù)據(jù)庫管理系統(tǒng) 。它結(jié)合了 MicrosoftJet Database Engine 和 圖形用戶界面兩項特點,是 Microsoft Office 的系統(tǒng)程序之一 。
Microsoft Office Access是微軟把數(shù)據(jù)庫引擎的圖形用戶界面和軟件開發(fā)工具結(jié)合在一起的一個數(shù)據(jù)庫管理系統(tǒng) 。它是微軟OFFICE的一個成員, 在包括專業(yè)版和更高版本的office版本里面被單獨出售 。2018年9月25日,最新的微軟Office Access 2019在微軟Office 2019里發(fā)布 。
MS ACCESS以它自己的格式將數(shù)據(jù)存儲在基于Access Jet的數(shù)據(jù)庫引擎里 。它還可以直接導(dǎo)入或者鏈接數(shù)據(jù)(這些數(shù)據(jù)存儲在其他應(yīng)用程序和數(shù)據(jù)庫) 。
C#.NET 訪問 Access 數(shù)據(jù)庫從 .NETframework 1.0 到現(xiàn)今的 dotnet-7.0,訪問 Access 數(shù)據(jù)庫都只能用 oledb 方式,微軟歷史訪問數(shù)據(jù)庫的方式有許多種(ado、odbc、oledb、ado.net),oledb 是其中的一種 。
連接字符串常見的有兩種:

  • Provider=Microsoft.Jet.OleDb.4.0;Data Source=d:/accdb/2003.mdb
  • Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:/accdb/2007.accdb
Access 支持 SQL 語句,使用起來和普通關(guān)系型數(shù)據(jù)庫差不多,由于不想在代碼中寫 SQL,為了讓 crud 操作起來更加便利,決定引入 C#.NET ORM Freesql,因為他支持 .NETFramework 4.0 及以后的所有 dotnet 版本,適應(yīng)范圍更廣 。
FreeSql 介紹.NET ORM Object Relational Mapping 是一種為了解決面向?qū)ο笈c關(guān)系數(shù)據(jù)庫存在的互不匹配的現(xiàn)象的技術(shù) 。
FreeSql .NET ORM 支持 .NetFramework4.0+、.NetCore、Xamarin、MAUI、Blazor、以及還有說不出來的運行平臺,因為代碼綠色無依賴,支持新平臺非常簡單 。目前單元測試數(shù)量:8500+,Nuget下載數(shù)量:1M+ 。使用最寬松的開源協(xié)議 MIT https://github.com/dotnetcore/FreeSql ,可以商用,文檔齊全,甚至拿去賣錢也可以 。
FreeSql 主要優(yōu)勢在于易用性上,基本是開箱即用,在不同數(shù)據(jù)庫之間切換兼容性比較好,整體的功能特性如下:
  • 支持 CodeFirst 對比結(jié)構(gòu)變化遷移、DbFirst 從數(shù)據(jù)庫生成實體類;
  • 支持 豐富的表達式函數(shù),獨特的自定義解析;
  • 支持 批量添加、批量更新、BulkCopy、導(dǎo)航屬性,貪婪加載、延時加載、級聯(lián)保存、級聯(lián)刪除;
  • 支持 讀寫分離、分表分庫,租戶設(shè)計,分布式事務(wù);
  • 支持 MySql/SqlServer/PostgreSQL/Oracle/Sqlite/Firebird/達夢/神通/人大金倉/翰高/Clickhouse/MsAccess Ado.net 實現(xiàn)包,以及 Odbc 的專門實現(xiàn)包;
8000+個單元測試作為基調(diào),支持10多數(shù)數(shù)據(jù)庫,我們提供了通用Odbc理論上支持所有數(shù)據(jù)庫,目前已知有群友使用 FreeSql 操作華為高斯、mycat、tidb 等數(shù)據(jù)庫 。安裝時只需要選擇對應(yīng)的數(shù)據(jù)庫實現(xiàn)包:
dotnet add packages FreeSql.Provider.MsAccess
public class DB{static Lazy<IFreeSql> accessLazy = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MsAccess, "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:/accdb/2007.accdb")//.UseAutoSyncStructure(true) 自動建表,適合新項目.UseNoneCommandParameter(true).UseMonitorCommand(cmd => Trace.WriteLine(cmd.CommandText)).Build());public static IFreeSql access => accessLazy.Value;}

經(jīng)驗總結(jié)擴展閱讀