Menu

Tree [d7df34] master /
 History

HTTPS access


File Date Author Commit
 BenchmarkCRUD 2025-10-31 Bruce Bruce [4aa6d7] tmp01
 DataStoreXPO 2025-10-31 Bruce Bruce [4aa6d7] tmp01
 DataStoreXPOCore 2025-10-31 Bruce Bruce [4aa6d7] tmp01
 XPOfficialTutorials 2025-10-31 Bruce Bruce [d7df34] net9
 .gitignore 2022-06-30 Bruce Bruce [e79266] 3.5
 General.targets 2025-10-31 Bruce Bruce [4aa6d7] tmp01
 Readme.md 2025-10-31 Bruce Bruce [d7df34] net9

Read Me

Integrating iBoxDB with SQL ORM -XPO

DevExpress XPO Data Store Adapter.

Getting Started

// Dotnet Core 
cd DataStoreXPOCore

dotnet run -c Release

Benchmark

$ tracker daemon -k

// Dotnet Core
cd BenchmarkCRUD

dotnet run -c Release

How to import

Copy source code in DataStoreXPO/Code to the project.
or add an ItemGroup to .csproj

<Project>   
 <Import Project="..\General.targets" /> 
</Project>

Use CreateThreadSafeDataLayer to create IDataLayer

  XpoDefault.DataLayer = IBoxDBDataStore.CreateThreadSafeDataLayer(1, path);

Set Base Class to NonPersistent for fast CRUD

    [NonPersistent]
    public class TBase : XPObject
    {
        public TBase(Session s) : base(s) { }
    }

    public class TMyObject : TBase
    {
        public TMyObject(Session s) : base(s) { }
    }

IDE

Use MonoDevelop to Open /DataStoreXPO/, Tested on CentOS7 Linux

Project-Packages-Restore
Project-Options-Run-Default- Uncheck("Run as external console").

Run - Start without Debugging

Compile

if can't compile,

reinstall nuget packages: iBoxDB and DevExpress.Xpo.

and Restrt IDE.

  <ItemGroup>
    <PackageReference Include="iBoxDB" Version="" />
    <PackageReference Include="DevExpress.Xpo" Version="" />
  </ItemGroup> 

Issues

About Join Count 1

use (ToList().Count) or add [not is null] condition (where obj != null)

For high performance applications, to use iBoxDB engine directly.