SuncodeSoftware.SuperSDK.Data 5.0.6

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package SuncodeSoftware.SuperSDK.Data --version 5.0.6
                    
NuGet\Install-Package SuncodeSoftware.SuperSDK.Data -Version 5.0.6
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SuncodeSoftware.SuperSDK.Data" Version="5.0.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SuncodeSoftware.SuperSDK.Data" Version="5.0.6" />
                    
Directory.Packages.props
<PackageReference Include="SuncodeSoftware.SuperSDK.Data" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SuncodeSoftware.SuperSDK.Data --version 5.0.6
                    
#r "nuget: SuncodeSoftware.SuperSDK.Data, 5.0.6"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SuncodeSoftware.SuperSDK.Data@5.0.6
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SuncodeSoftware.SuperSDK.Data&version=5.0.6
                    
Install as a Cake Addin
#tool nuget:?package=SuncodeSoftware.SuperSDK.Data&version=5.0.6
                    
Install as a Cake Tool

SuperSDK.Data

数据访问层,基于 Entity Framework Core 和 SQLite 的数据持久化。支持对同一项目中的实体库和数据访问库进行代码混淆,表名 / 列名定义完全安全。

安装

dotnet add package SuncodeSoftware.SuperSDK.Data

使用示例

1. 定义实体模型

using SuperSDK.Data;
using System.ComponentModel.DataAnnotations;

// 实现 ITableEntity + IDatabaseEntity 接口:
//   - DatabaseName / TableName 返回的是字符串字面量(数据,非标识符)
//   - 混淆后 CLR 类型名会改变,但接口返回值不变 → 表名/数据库名永远正确
public class AppConfig : IEntity, IDatabaseEntity, ITableEntity
{
    [Key]
    public string Id { get; set; } = Guid.NewGuid().ToString();

    [Required]
    public string ConfigName { get; set; } = "";

    public string ConfigValue { get; set; } = "";

    // 指定数据库文件名(不含 .db 后缀)
    public string DatabaseName => "MyApp";

    // 指定 SQLite 表名(混淆安全:字符串字面量)
    public string TableName => "AppConfig";
}

2. 初始化数据库

using SuperSDK.Data;

// 注册实体(可连续注册多个)
DbContextFactory.RegisterEntity<AppConfig>();

// 初始化(所有 RegisterEntity 调用后执行一次)
DbContextFactory.EnsureInitialized();

3. CRUD 操作

using SuperSDK.Data;

// 插入
var config = new AppConfig { ConfigName = "Theme", ConfigValue = "Dark" };
EntityStore.Insert(config);

// 查询所有
var all = EntityStore.GetAll<AppConfig>();

// 条件查询
var dark = EntityStore.Find<AppConfig>(c => c.ConfigValue == "Dark");

// 更新
config.ConfigValue = "Light";
EntityStore.Update(config);

// 删除
EntityStore.Delete(config);

🔐 加密字段

对于需要加密存储的敏感数据:

public class UserProfile : IEntity, IEncryptedEntity, IDatabaseEntity, ITableEntity
{
    [Key]
    public string Id { get; set; } = Guid.NewGuid().ToString();

    public string Username { get; set; } = "";

    // 加密字段 - 自动隔离到 secure.db(SQLCipher 加密)
    [Encrypted]
    public string Password { get; set; } = "";

    [Encrypted]
    public List<string> ApiKeys { get; set; } = new();

    public string DatabaseName => "MyApp";
    public string TableName    => "UserProfile";
}

// 初始化加密数据库
EncryptedFieldManager.Initialize("Data/secure.db", "YourSecurePassword");

🛡️ 代码混淆支持

SuperSDK.Data 本身及所有使用它定义实体的库均可安全进行代码混淆(Obfuscar)。

混淆安全保证原理:

被混淆的东西 混淆前 混淆后 影响
CLR 类型名 AppConfig _A 无影响(框架靠接口值定位表名)
接口属性名 TableName 不变(接口约束保护) 无影响
属性返回值 "AppConfig" "AppConfig" 字符串字面量,混淆器不改变数据
列名(属性名) ConfigName 不变(RenameProperties=false 无影响

约定:

  • 实体必须实现 ITableEntityTableName)和 IDatabaseEntityDatabaseName)接口,或使用 [Table("名称")] 特性
  • 混淆时需设置 RenameProperties=false(防止 EF Core 列名变化)
  • 在任意库中定义的实体均遵循相同约定,均可混淆
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
Loading failed

talk data deverse 7