iBoxDB.NET Linq 查询语法扩展库 0.5 发布

来源: 投稿
作者: iBoxDB
2021-03-15

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】, 可自行测试。

展开阅读全文
6 收藏
分享
加载中
更多评论
0 评论
6 收藏
分享
返回顶部
顶部