EFCore之SQL扩展组件BeetleX.EFCore.Extension
??????? EFCore是.NETCore團隊開發的一個ORM組件,但這個組件在執行傳統SQL的時候并不方便,因此BeetleX.EFCore.Extension的設計目的是讓EFCore執行傳統SQL更簡單方便。
引用
????????在使用組件之前需要引用它,可以通過以下地址獲取最新版本
https://www.nuget.org/packages/BeetleX.EFCore.Extension/
使用
????????引用組件后就可以使用,組件的操作操作都是針對EFCore的DBContext對象來進行數據庫操作。
SQL sql = "select * from employees"; var employees = sql.List<Employee, NorthwindContext>();組件提供SQL對象用來操作傳統的SQL語句,以上代碼是在NorthwindContext數據庫上執行查詢語句并返回相關信息列表。
sql = "select * from customers where country=@country"; sql += ("@country", "UK"); var customers = sql.List<Customer, NorthwindContext>();以上是針對參數化的SQL處理,在操作上DBContext可以通過泛參傳入或通過實例以變量的參數傳入,通過泛參傳入的好處是不用實例化DBContext。
批量更新
????????在EFCore更新某個條件的字段信息操作起來比較麻煩,所以組件也擴展出相關方法來解決。
var cmd = db.Customers.Update(c => c.Region == "uk").Where(c => c.Country == "UK").Execute();以上操作是把國家是UK的所有記錄Region改成uk
批量刪除
????????同樣EFCore在批條件刪除上也不怎么方便,組件同樣也在DBSet的基礎上擴展了Delete批刪除方法.
using (NorthwindContext db = new NorthwindContext()) {var?cmd?=?db.Customers.Delete(c?=>?c.Country?==?"UK"); }以上是刪除國家是UK的所有記錄.
Select對象
??????? Select對象是針對單個表的個性查詢需求制定的,它可以定義查詢不同的定段和條件來返回到指定的對象中。
以上是針對客戶信息查詢一些字段并返回到其他結構的對象列表中。
轉議執行
????????組件封了一些返回類型,通過類型的自動轉換實現SQL自動執行功能。通過轉議執行可以更方便地執行一些單一性的SQL處理。
using (NorthwindContext db = new NorthwindContext()) {DBValueList<string> values = (db, "select customerid from customers");DBObjectList<CustomerName> items = (db, "select CustomerID,CompanyName from customers");DBExecute<string> id = (db, "select CompanyName from customers where CustomerID='ALFKI'");DBExecute execute = (db, "delete from customers", " delete from orders"); }執行鏈跟蹤
????????在新版中添加了執行跟蹤鏈,可以進一步查看組件執行SQL的情況。
開源跨平臺通訊框架(支持TLS)
輕松實現高性能:tcp、http、websocket、redis、rpc和網關等服務應用
https://beetlex.io
如果你想了解某方面的知識或文章可以把想法發送到
henryfan@msn.com|admin@beetlex.io
總結
以上是生活随笔為你收集整理的EFCore之SQL扩展组件BeetleX.EFCore.Extension的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 壹佰文章总结| 关于ASP.NETCor
- 下一篇: 云原生时代,.NET5必将称王!