輕量ORM SqlRepoEx 重大公升級

2021-08-28 17:00:26 字數 2346 閱讀 6549

.net平台下相容.net standard 2.0,乙個實現以lambda表示式轉轉換標準sql語句,支援mysql、sql server資料庫方言,使用強型別運算元據的輕量級orm工具,在減少魔法字串同時,通過靈活的lambda表示式組合,實現業務資料查詢的多樣性。

演示**:

1、重新組織**結構,以支援sql方言;

2、增加對mysql資料訪問支援;

只需幾步,即可實現sqlrepoex與

string connectionstring = "data source=(local);initial catalog=northwind;user id=test;password=test";

var connectionprovider = new mssqlp.connectionstringconnectionprovider(connectionstring);

mssqlrepofactory.useconnectionprovider(connectionprovider);

var repository = mssqlrepofactory.create();

var result = repository.query().select(e => e.customerid, e => e.companyname, e => e.address).top(10);

sqlrepoex1.1的where語句只支援單一表示式: where(c => c.id == 9),如果使用 where(c => c.id == 9 && c.id == 10 ),則會報錯;

sqlrepoex2.0可以使用:where(c => c.id > 0 && c.id < 30 && c.remark.contains("a"))的更自然的語法;

sqlrepoex1.1不支援union操作;

在sqlrepoex2.0中可以

var repository = mssqlrepofactory.create();

var results = repository.query().select(e => e.id, e => e.task);

var results5 = repository.query().select(e => e.id, e => e.task)

.where(c => c.id > 0 && c.id < 7);

var results6 = repository.query()

.select(e => e.id, e => e.task)

.where(c => c.id > 10 && c.id < 15);

var results2 = results.union(new list);

foreach (var item in results2)

\t ");

}

var repository = mssqlrepofactory.create();

var results1 = repository.query()

.innerjoin()

// 增加附加條件,如果主選擇有此屬性,則查詢本句中所設定

.on((r, l) => r.task == l.task, l => l.remark);

console.writeline(results1.sql());

1、使用 autofac 時

install-package sqlrepoex.mssql.autofac -version 2.0.1

2、asp.net core

install-package sqlrepoex.mssql.servicecollection -version 2.0.1

3、手動例項時

install-package sqlrepoex.mssql.static -version 2.0.1

1、使用 autofac 時

install-package sqlrepoex.mysql.autofac -version 2.0.1

2、asp.net core

install-package sqlrepoex.mysql.servicecollection -version 2.0.1

3、手動例項時

install-package sqlrepoex.mysql.static -version 2.0.1

install-package sqlrepoex.normal -version 2.0.1

如使用中有任何問題,請告知

2、可通過電郵 [email protected]

程序 輕量程序 執行緒

程序是正在執行程式的乙個例項。可以認為是資料結構的集合,這個集合詳細描述了程式的執 況。程序建立時繼承了父程序的位址空間且與父程序執行同樣的 但它們有各自的資料,子程序對資料的改變對父程序是不可見的。為更好的支援多執行緒應用,linux使用輕量程序。兩個輕量程序共享某些資源,如位址空間,開啟的檔案等...

StructureMap 輕量IOC框架

structuremap是乙個dependency injection framework,和spring.net類似,使用attribute的方式,同時支援xml配置檔案的方式,在構建鬆散耦合的系統過程中發揮了很大的作用。甚至有人說 don t create a loosely coupled s...

輕量定時器

import schedule import time defjob print 我又回來了.d time.localtime tm min schedule.every 10 minutes.do job 每隔10分鐘執行一次任務 schedule.every hour.do job 每隔一小時執...