CI / Go Backend (push) Canceled after 0s
初始化 monorepo: Go后端(7微服务) + Unity客户端(9模块) + 启动器 HTML5原型: Three.js 3D体素世界, Perlin噪声地形, 原版材质, 22种方块 Minecraft创造模式背包: 双栏布局, 拖拽移动物品, 方向性元件引脚 AI助搭策划文档 + 客户端/服务端骨架 + Docker Compose + CI
48 lines
1.2 KiB
C#
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;
|
|
}
|
|
} |