Files
MRCC/launcher/PCL-CE/PCL.Core/App/Database/DatabaseEntry.cs
T
xyou f70b061d1a
CI / Go Backend (push) Canceled after 0s
feat: 项目初始化 + 3D方块世界原型 + AI助搭系统
初始化 monorepo: Go后端(7微服务) + Unity客户端(9模块) + 启动器

HTML5原型: Three.js 3D体素世界, Perlin噪声地形, 原版材质, 22种方块

Minecraft创造模式背包: 双栏布局, 拖拽移动物品, 方向性元件引脚

AI助搭策划文档 + 客户端/服务端骨架 + Docker Compose + CI
2026-08-08 14:07:56 +08:00

48 lines
1.2 KiB
C#

using System;
using LiteDB;
namespace PCL.Core.App.Database;
/// <summary>
/// Base database connention entry.
/// </summary>
public abstract class DatabaseEntry : IDisposable
{
protected readonly LiteDatabase Db;
private bool _disposed = false;
/// <exception cref="ArgumentNullException">Throw if connection path is invalid.</exception>
protected DatabaseEntry(string connPath)
{
var db = DatabaseService.GetConnection(connPath);
Db = db ?? throw new ArgumentNullException(nameof(db), "Database variable can not be null.");
}
/// <exception cref="ArgumentNullException">Throw if connection path is invalid.</exception>
protected DatabaseEntry(LiteDatabase database)
{
Db = database ?? throw new ArgumentNullException(nameof(database), "Database variable can not be null.");
}
/// <inheritdoc />
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (_disposed)
{
return;
}
if (disposing)
{
// NOTE: do not dispose Db, because it is managed by DatabaseService
}
_disposed = true;
}
}