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" />
<PackageReference Include="SuncodeSoftware.SuperSDK.Data" />
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
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#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
#tool nuget:?package=SuncodeSoftware.SuperSDK.Data&version=5.0.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
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) |
无影响 |
约定:
- 实体必须实现
ITableEntity(TableName)和IDatabaseEntity(DatabaseName)接口,或使用[Table("名称")]特性 - 混淆时需设置
RenameProperties=false(防止 EF Core 列名变化) - 在任意库中定义的实体均遵循相同约定,均可混淆
| Product | Versions 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.
-
net9.0
- Microsoft.Data.Sqlite.Core (>= 9.0.0)
- Microsoft.EntityFrameworkCore.Sqlite (>= 9.0.0)
- SuncodeSoftware.SuperSDK.Core (>= 5.0.6)
- SuncodeSoftware.SuperSDK.License (>= 5.0.6)
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