Datory 介紹

Datory 在(zài)流行的(de) Dapper 框架 (opens new window)以(yǐ)及 SqlKata 框架 (opens new window)基礎上(shàng)開發而(ér)來(lái),簡化了(le/liǎo)操作接口并增加了(le/liǎo)默認設置,作爲(wéi / wèi) XYCMS 默認的(de) ORM 數據庫操作框架,Datory 能夠以(yǐ)優雅的(de)方式執行數據庫查詢以(yǐ)及執行操作。

Datory 版本号與 XYCMS 系統版本号一(yī / yì /yí)緻,每次 XYCMS 系統更新時(shí) Datory 版本也(yě)将随之(zhī)更新,Datory 源碼與 XYCMS 源碼位于(yú)同一(yī / yì /yí)個(gè)源碼倉庫 (opens new window),NuGet 托管地(dì / de)址:https://www.nuget.org/packages/Datory 。

Datory 框架使用參數綁定技術來(lái)保護 XYCMS 系統及其插件免受 SQL 注入攻擊,無需清理作爲(wéi / wèi)綁定傳遞的(de)字符串。

除了(le/liǎo)防止 SQL 注入攻擊之(zhī)外,Datory 框架還集成了(le/liǎo) Redis 支持,通過讓 SQL 引擎緩存和(hé / huò)重用相同的(de)查詢計劃來(lái)加快查詢執行速度,同時(shí) Datory 框架 支持 MySQL、SQLServer、PostgreSql 以(yǐ)及 Sqlite 多種數據庫類型。

示例:

var repository = new Repository<DataModel>(settingsManager.Database, settingsManager.Redis);

await repository.GetAllAsync<string>(Q
    .Select("Name")
    .Where("GroupId", 100)
    .Limit(10)
    .OrderByDesc("Id")
);
1
2
3
4
5
6
7
8

以(yǐ)上(shàng)代碼首先從 settingsManager 中獲取數據庫鏈接信息并創建數據倉庫 repository,倉庫的(de)數據源映射至 DataModel 實體類,然後設置 Where 查詢條件,按 Id 字段倒序排序并限制最高獲取10條數據,最後返回 Name 字段的(de)列表值。

安裝

XYCMS API 默認包含了(le/liǎo) Datory 框架依賴,如果開發插件使用 Datory 框架,隻需要(yào / yāo)安裝 XYCMS 依賴包,無需單獨安裝 Datory 依賴包。

如果獨立使用 Datory 框架,可以(yǐ)從終端運行以(yǐ)下命令以(yǐ)将其包含在(zài)您的(de)項目中。

dotnet add package Datory
1