iBoxDB.NET Linq 查询语法扩展库 0.5 发布
iBoxDB 是一个高性能的嵌入式数据库引擎,支持基础SQL查询,
这个Linq查询语法扩展库,提供对复杂查询语言的支持,
并展示了数据库引擎与高级查询语言的通用整合设计,
参考这个设计,可以自己定义与业务整合的高级查询语言
这个扩展库不只是简单整合.NET的Linq表达式,而是整合XPO ORM的Criteria表达式,
这样更容易使用XPO丰富的UI库及兼容各种SQL数据库
使用:
下载源码 .NET Linq, integrating with SQL ORM -XPO
源码在MonoDevelop CentOS7 .NET4.7下开发,可直接应用于.NET5
在 .csproj 加入一行编译引用。
<ItemGroup>
<Compile Include="..\DataStoreXPO\DataStoreXPOCode\*.cs" />
</ItemGroup>
设置数据层使用iBoxDB
XpoDefault.DataLayer = IBoxDBDataStore.CreateThreadSafeDataLayer(1, path);
使用对象查询语法:
查找持有"ItemName3"的用户
using (var unit = new UnitOfWork())
{
var select = from User u in unit
where u.Items.Any(t => t.ItemName.StartsWith("ItemName3"))
select u;
}
查找"ItemName3",返回持有它的用户
using (var unit = new UnitOfWork())
{
var select = (from Item i in unit
where i.ItemName.StartsWith("ItemName3")
select i.FUser).Distinct();
}
源码项目带有性能测试子项目【Benchmark】, 可自行测试。