Skip to content

Commit 72e406a

Browse files
author
MPCoreDeveloper
committed
commit new readme files
1 parent 705a77e commit 72e406a

File tree

14 files changed

+170
-40
lines changed

14 files changed

+170
-40
lines changed

build-nuget.ps1

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/usr/bin/env pwsh
2+
# Build SharpCoreDB NuGet package with multi-RID support
3+
# Usage: .\build-nuget.ps1
4+
5+
param(
6+
[string]$Configuration = "Release"
7+
)
8+
9+
$ErrorActionPreference = "Stop"
10+
$ProjectPath = "src\SharpCoreDB\SharpCoreDB.csproj"
11+
$RIDs = @("win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64")
12+
13+
Write-Host "🔧 Building SharpCoreDB NuGet Package" -ForegroundColor Cyan
14+
Write-Host ""
15+
16+
# Step 1: Clean
17+
Write-Host "🧹 Cleaning previous builds..." -ForegroundColor Yellow
18+
dotnet clean $ProjectPath -c $Configuration
19+
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
20+
21+
# Step 2: Restore without RID (AnyCPU)
22+
Write-Host "📦 Restoring project..." -ForegroundColor Yellow
23+
dotnet restore $ProjectPath
24+
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
25+
26+
# Step 3: Build for each RID
27+
foreach ($rid in $RIDs) {
28+
Write-Host "🏗️ Building for $rid..." -ForegroundColor Green
29+
dotnet build $ProjectPath -c $Configuration -r $rid --no-restore
30+
if ($LASTEXITCODE -ne 0) {
31+
Write-Host "❌ Build failed for $rid" -ForegroundColor Red
32+
exit $LASTEXITCODE
33+
}
34+
}
35+
36+
# Step 4: Pack
37+
Write-Host "📦 Creating NuGet package..." -ForegroundColor Green
38+
dotnet pack $ProjectPath -c $Configuration --no-build --no-restore
39+
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
40+
41+
Write-Host ""
42+
Write-Host "✅ NuGet package created successfully!" -ForegroundColor Green
43+
Write-Host "📁 Location: src\SharpCoreDB\bin\$Configuration\" -ForegroundColor Cyan

src/SharpCoreDB.Data.Provider/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
[![NuGet Downloads](https://img.shields.io/nuget/dt/SharpCoreDB.Data.Provider)](https://www.nuget.org/packages/SharpCoreDB.Data.Provider)
1010
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
1111
[![.NET](https://img.shields.io/badge/.NET-10.0-blue.svg)](https://dotnet.microsoft.com/download)
12+
[![Version](https://img.shields.io/badge/Version-1.3.0-green.svg)](https://github.com/MPCoreDeveloper/SharpCoreDB/releases)
1213
[![GitHub Stars](https://img.shields.io/github/stars/MPCoreDeveloper/SharpCoreDB)](https://github.com/MPCoreDeveloper/SharpCoreDB/stargazers)
1314

1415
</div>

src/SharpCoreDB.Data.Provider/SharpCoreDB.Data.Provider.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@
1616
<PackageProjectUrl>https://github.com/MPCoreDeveloper/SharpCoreDB</PackageProjectUrl>
1717
<RepositoryUrl>https://github.com/MPCoreDeveloper/SharpCoreDB</RepositoryUrl>
1818
<PackageTags>ado.net;database;data-provider;sharpcoredb</PackageTags>
19-
<Version>1.2.0</Version>
19+
<Version>1.3.0</Version>
2020
<RepositoryType>git</RepositoryType>
2121
<PackageReadmeFile>README.md</PackageReadmeFile>
2222
<PackageIcon>SharpCoreDB.jpg</PackageIcon>
2323
<IncludeSymbols>true</IncludeSymbols>
2424
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
2525
<PackageId>SharpCoreDB.Data.Provider</PackageId>
2626
<Description>Data provider layer for SharpCoreDB on .NET 10.</Description>
27-
<PackageReleaseNotes>v1.2.0: Updated to support SharpCoreDB 1.2.0 - Enhanced query execution, optimized join operations, improved subquery handling, better index utilization, and performance tuning.</PackageReleaseNotes>
27+
<PackageReleaseNotes>v1.3.0: Updated to support SharpCoreDB 1.3.0 - Enhanced query execution, optimized join operations, improved subquery handling, better index utilization, and performance tuning.</PackageReleaseNotes>
2828

2929
<!-- Visual Studio: Enable "Pack" command to create multi-RID package -->
3030
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>

src/SharpCoreDB.EntityFrameworkCore/README.md

Lines changed: 74 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
99
[![.NET](https://img.shields.io/badge/.NET-10.0-blue.svg)](https://dotnet.microsoft.com/download)
10-
[![NuGet](https://img.shields.io/badge/NuGet-1.0.6-blue.svg)](https://www.nuget.org/packages/SharpCoreDB.EntityFrameworkCore)
10+
[![NuGet](https://img.shields.io/badge/NuGet-1.3.0-blue.svg)](https://www.nuget.org/packages/SharpCoreDB.EntityFrameworkCore)
1111
[![EF Core](https://img.shields.io/badge/EF%20Core-10.0.2-purple.svg)](https://docs.microsoft.com/ef/core/)
1212

1313
</div>
@@ -18,18 +18,20 @@
1818

1919
Entity Framework Core 10 database provider for **SharpCoreDB** — a high-performance encrypted embedded database engine. Use familiar EF Core APIs with SharpCoreDB's AES-256-GCM encryption, SIMD acceleration, and zero-config deployment.
2020

21+
**Latest (v1.3.0):** Fixed CREATE TABLE COLLATE clause emission for UseCollation() ✅
22+
2123
---
2224

2325
## Installation
2426

2527
```bash
26-
dotnet add package SharpCoreDB.EntityFrameworkCore
28+
dotnet add package SharpCoreDB.EntityFrameworkCore --version 1.3.0
2729
```
2830

2931
**Requirements:**
3032
- .NET 10.0 or later
3133
- Entity Framework Core 10.0.2 or later
32-
- SharpCoreDB 1.0.6 or later (installed automatically)
34+
- SharpCoreDB 1.3.0 or later (installed automatically)
3335

3436
---
3537

@@ -196,6 +198,73 @@ builder.Services.AddDbContext<AppDbContext>(options =>
196198
| **Spatial Types** | Not supported (no geometry/geography) |
197199
| **JSON Columns** | Not supported |
198200
| **Batch UPDATE/DELETE** (`ExecuteUpdate`/`ExecuteDelete`) | Not yet implemented |
201+
| **COLLATE Support** | ✅ Fixed in v1.3.0 - CREATE TABLE now emits COLLATE clauses |
202+
203+
---
204+
205+
## Collation Support (v1.3.0+)
206+
207+
SharpCoreDB supports column-level collations including `NOCASE` for case-insensitive comparisons and `LOCALE()` for culture-specific sorting.
208+
209+
### Basic Collation Configuration
210+
211+
```csharp
212+
public class User
213+
{
214+
public int Id { get; set; }
215+
public required string Username { get; set; }
216+
public required string Email { get; set; }
217+
}
218+
219+
public class AppDbContext : DbContext
220+
{
221+
public DbSet<User> Users => Set<User>();
222+
223+
protected override void OnModelCreating(ModelBuilder modelBuilder)
224+
{
225+
modelBuilder.Entity<User>(entity =>
226+
{
227+
// Case-insensitive username
228+
entity.Property(e => e.Username)
229+
.HasMaxLength(50)
230+
.UseCollation("NOCASE"); // ✅ Fixed in v1.3.0
231+
232+
// Locale-specific email sorting
233+
entity.Property(e => e.Email)
234+
.HasMaxLength(100)
235+
.UseCollation("LOCALE(\"en-US\")");
236+
});
237+
}
238+
}
239+
```
240+
241+
### Generated SQL (v1.3.0+)
242+
243+
```sql
244+
CREATE TABLE User (
245+
Id INTEGER PRIMARY KEY AUTO,
246+
Username TEXT COLLATE NOCASE NOT NULL,
247+
Email TEXT COLLATE LOCALE("en-US") NOT NULL
248+
)
249+
```
250+
251+
### Direct SQL Queries with Collations
252+
253+
```csharp
254+
// Case-insensitive WHERE clause (uses NOCASE from column definition)
255+
var users = await db.Users
256+
.FromSqlRaw("SELECT * FROM User WHERE Username = 'ALICE'")
257+
.ToListAsync();
258+
259+
// Will match 'alice', 'Alice', 'ALICE', etc.
260+
```
261+
262+
### Known Limitations
263+
264+
- **EF Core LINQ Query Provider**: Full LINQ query translation for collations is pending infrastructure work
265+
- **Workaround**: Use `FromSqlRaw` for complex collation queries or call direct SQL via `ExecuteQuery()`
266+
- **What Works**: CREATE TABLE emission, direct SQL queries, case-insensitive WHERE clauses
267+
- **What's Pending**: Full LINQ expression translation (e.g., `db.Users.Where(u => u.Username == "ALICE")`)
199268

200269
---
201270

@@ -383,7 +452,7 @@ MIT License — see [LICENSE](https://github.com/MPCoreDeveloper/SharpCoreDB/blo
383452

384453
---
385454

386-
**Version**: 1.0.6
455+
**Version**: 1.3.0
387456
**Last Updated**: 2026
388-
**Compatibility**: .NET 10.0+, EF Core 10.0.2+, SharpCoreDB 1.0.6, C# 14
457+
**Compatibility**: .NET 10.0+, EF Core 10.0.2+, SharpCoreDB 1.3.0, C# 14
389458
**Platforms**: Windows, Linux, macOS, Android, iOS, IoT (x64, ARM64)

src/SharpCoreDB.Extensions/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<div align="center">
22
<img src="https://raw.githubusercontent.com/MPCoreDeveloper/SharpCoreDB/master/SharpCoreDB.jpg" alt="SharpCoreDB Logo" width="200"/>
33

4-
# SharpCoreDB.Extensions v1.0.6
4+
# SharpCoreDB.Extensions v1.3.0
55

66
**Dapper Integration · Health Checks · Repository Pattern · Bulk Operations · Performance Monitoring**
77

88
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
99
[![.NET](https://img.shields.io/badge/.NET-10.0-blue.svg)](https://dotnet.microsoft.com/download)
1010
[![C#](https://img.shields.io/badge/C%23-14-blueviolet.svg)](https://learn.microsoft.com/dotnet/csharp/)
11-
[![NuGet](https://img.shields.io/badge/NuGet-1.0.6-blue.svg)](https://www.nuget.org/packages/SharpCoreDB.Extensions)
11+
[![NuGet](https://img.shields.io/badge/NuGet-1.3.0-blue.svg)](https://www.nuget.org/packages/SharpCoreDB.Extensions)
1212

1313
</div>
1414

@@ -43,7 +43,7 @@ dotnet add package SharpCoreDB.Extensions
4343

4444
| Package | Version | Purpose |
4545
|---------|---------|---------|
46-
| SharpCoreDB | 1.0.6 | Core database engine |
46+
| SharpCoreDB | 1.3.0 | Core database engine |
4747
| Dapper | 2.1.66 | Micro-ORM for typed queries |
4848
| Microsoft.Extensions.Diagnostics.HealthChecks | 10.0.2 | ASP.NET Core health checks |
4949

@@ -470,6 +470,7 @@ builder.Services.AddHealthChecks()
470470
dbPath: "./app_db",
471471
password: "StrongPassword!");
472472

473+
473474
// Advanced health check with options
474475
builder.Services.AddHealthChecks()
475476
.AddSharpCoreDB(
@@ -505,7 +506,6 @@ app.MapHealthChecks("/health", new HealthCheckOptions
505506

506507
app.Run();
507508
```
508-
509509
### Custom Health Check Logic
510510
511511
```csharp
@@ -564,7 +564,7 @@ if (result.Exception != null)
564564
- Returns detailed health status
565565

566566
2. **HealthCheckBuilderExtensions**
567-
- Extension method: `AddSharpCoreDB()`
567+
- Extension method: `AddSharpCoreDB()
568568
- Registers health check in DI container
569569
- Configurable name, tags, timeout, failure status
570570

@@ -678,7 +678,7 @@ db.ExecuteSQL("CREATE TABLE IF NOT EXISTS logs (id INTEGER PRIMARY KEY, message
678678
using var connection = db.GetDapperConnection();
679679

680680
// Insert logs
681-
var logs = new[]
681+
var logs = new []
682682
{
683683
new { Id = 1, Message = "Application started", Timestamp = DateTime.UtcNow.ToString("O") },
684684
new { Id = 2, Message = "Processing data", Timestamp = DateTime.UtcNow.ToString("O") }

src/SharpCoreDB.Extensions/SharpCoreDB.Extensions.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88

99
<!-- NuGet Package Properties -->
1010
<PackageId>SharpCoreDB.Extensions</PackageId>
11-
<Version>1.2.0</Version>
11+
<Version>1.3.0</Version>
1212
<Authors>MPCoreDeveloper</Authors>
1313
<Company>SharpCoreDB</Company>
1414
<Product>SharpCoreDB.Extensions</Product>
1515
<Description>Extensions for SharpCoreDB including Dapper integration and ASP.NET Core health checks. Built for .NET 10 with C# 14. Supports Windows, Linux, macOS, Android, iOS, and IoT/embedded devices with platform-specific optimizations.</Description>
1616
<Copyright>Copyright (c) 2026 MPCoreDeveloper</Copyright>
17-
<PackageReleaseNotes>v1.2.0: Updated to support SharpCoreDB 1.2.0 - Enhanced query execution, optimized join operations, improved subquery handling, better index utilization, and performance tuning.</PackageReleaseNotes>
17+
<PackageReleaseNotes>v1.3.0: Updated to support SharpCoreDB 1.3.0 - Enhanced query execution, optimized join operations, improved subquery handling, better index utilization, and performance tuning.</PackageReleaseNotes>
1818
<PackageTags>sharpcoredb;database;dapper;healthchecks;extensions;net10;csharp14;android;ios;mobile;iot;arm64;x64</PackageTags>
1919
<PackageLicenseExpression>MIT</PackageLicenseExpression>
2020
<PackageProjectUrl>https://github.com/MPCoreDeveloper/SharpCoreDB</PackageProjectUrl>

src/SharpCoreDB.Provider.YesSql/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
# SharpCoreDB.Provider.YesSql
1+
# SharpCoreDB.Provider.YesSql v1.3.0
22

33
**YesSql Provider for SharpCoreDB** - Enables OrchardCore CMS and other YesSql-based applications to use SharpCoreDB as the underlying database.
44

55
[![.NET](https://img.shields.io/badge/.NET-10.0-blue.svg)](https://dotnet.microsoft.com/download)
66
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7+
[![Version](https://img.shields.io/badge/Version-1.3.0-green.svg)](https://github.com/MPCoreDeveloper/SharpCoreDB/releases)
78

89
---
910

src/SharpCoreDB.Provider.YesSql/SharpCoreDB.Provider.YesSql.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88

99
<!-- NuGet Package Properties -->
1010
<PackageId>SharpCoreDB.Provider.YesSql</PackageId>
11-
<Version>1.2.0</Version>
11+
<Version>1.3.0</Version>
1212
<Authors>MPCoreDeveloper</Authors>
1313
<Company>SharpCoreDB</Company>
1414
<Product>SharpCoreDB.Provider.YesSql</Product>
1515
<Description>YesSql provider for SharpCoreDB encrypted database engine. Built for .NET 10 with C# 14. Supports Windows, Linux, macOS, Android, iOS, and IoT/embedded devices with platform-specific optimizations.</Description>
1616
<Copyright>Copyright (c) 2026 MPCoreDeveloper</Copyright>
17-
<PackageReleaseNotes>v1.2.0: Updated to support SharpCoreDB 1.2.0 - Enhanced query execution, optimized join operations, improved subquery handling, better index utilization, and performance tuning.</PackageReleaseNotes>
17+
<PackageReleaseNotes>v1.3.0: Updated to support SharpCoreDB 1.3.0 - Enhanced query execution, optimized join operations, improved subquery handling, better index utilization, and performance tuning.</PackageReleaseNotes>
1818
<PackageTags>sharpcoredb;yessql;database;orm;net10;csharp14;android;ios;mobile;iot;arm64;x64</PackageTags>
1919
<PackageLicenseExpression>MIT</PackageLicenseExpression>
2020
<PackageProjectUrl>https://github.com/MPCoreDeveloper/SharpCoreDB</PackageProjectUrl>

src/SharpCoreDB.Serilog.Sinks/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
99
[![.NET](https://img.shields.io/badge/.NET-10.0-blue.svg)](https://dotnet.microsoft.com/download)
10-
[![NuGet](https://img.shields.io/badge/NuGet-1.0.7-blue.svg)](https://www.nuget.org/packages/SharpCoreDB.Serilog.Sinks)
10+
[![NuGet](https://img.shields.io/badge/NuGet-1.3.0-blue.svg)](https://www.nuget.org/packages/SharpCoreDB.Serilog.Sinks)
1111
[![Serilog](https://img.shields.io/badge/Serilog-4.x-purple.svg)](https://serilog.net/)
1212

1313
</div>

src/SharpCoreDB.Serilog.Sinks/SharpCoreDB.Serilog.Sinks.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<!-- NuGet Package Metadata -->
99
<PackageId>SharpCoreDB.Serilog.Sinks</PackageId>
10-
<Version>1.2.0</Version>
10+
<Version>1.3.0</Version>
1111
<Authors>MPCoreDeveloper</Authors>
1212
<Company>SharpCoreDB</Company>
1313
<Product>SharpCoreDB.Serilog.Sinks</Product>
@@ -24,7 +24,7 @@
2424
<GenerateDocumentationFile>true</GenerateDocumentationFile>
2525
<IncludeSymbols>true</IncludeSymbols>
2626
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
27-
<PackageReleaseNotes>v1.2.0: Updated to support SharpCoreDB 1.2.0 - Enhanced query execution, optimized join operations, improved subquery handling, better index utilization, and performance tuning.</PackageReleaseNotes>
27+
<PackageReleaseNotes>v1.3.0: Updated to support SharpCoreDB 1.3.0 - Enhanced query execution, optimized join operations, improved subquery handling, better index utilization, and performance tuning.</PackageReleaseNotes>
2828
</PropertyGroup>
2929

3030
<ItemGroup>

0 commit comments

Comments
 (0)