はじめに
NETの世界では、データベースの選択が不可欠です。軽量なNo SQLデータベースLiteDBをご紹介します。小さくて強力な、プロジェクトに高速で柔軟なデータストレージソリューションを提供します。初心者でもベテランでも、LiteDBはあなたの右腕になります!
LiteDBの紹介
LiteDBは、. NET用に設計されたC#マネージドコードで書かれたオープンソースの組み込みNo SQLデータベースです。BSON Binary JSONフォーマットに基づいてデータを格納し、豊富なクエリ操作をサポートし、複雑なサーバーをインストールして管理する必要はありません。LiteDBは、小規模プロジェクト、デスクトップアプリケーション、マイクロサービスアーキテクチャのデータストレージニーズに最適です。

LiteDBの
- MongoDBに似たシンプルなAPI
- 1つのDLL内の. NET 4.5 /NET Standard 1.3/2.0用の100% C#コード(450kb未満)
- ■安全なスレッド
- ·书き込み后のデータリカバリ(WALログファイル)
- ·DES (AES)暗号化技術を使用したデータファイルの暗号化
- ·プロパティまたはFluentマッパーを使用してPOCOクラスをAPIBsonDocumentにマッピングする
- ファイルとストリームデータの保存(MongoDBのGridFSなど)
- ·単一データファイルのストレージ(SQLiteなど)
- ·高速検索のためのドキュメントフィールドのインデックス作成
- ·クエリのLINQサポート
- ·データへのアクセス/変換のためのSQLライクなコマンド
- オープンソース、商用利用を含む誰にでも無料
LiteDBの特長
** 軽量 **:LiteDBはサーバーをインストールせず、. NETプロジェクトに直接統合され、スペースが少なく、高速に実行できます。
*** 高性能 **:インデックス作成、クエリ最適化、非同期操作をサポートし、データの読み書きの効率性を確保します。
** 使いやすい **:簡潔なAPIと豊富なドキュメントサポートにより、簡単に始めることができます。
** ACIDトランザクションのサポート **:データの一貫性と整合性を確保します。
** クロスプラットフォーム **:LiteDBは、Windows、Linux、macOSなどの複数のプラットフォームで実行できます。
** 美しいUIサポート **:LiteDB Studio-データアクセスのための美しいユーザーインターフェイス。
LiteDBの使用方法
** インストール **:NuGetパッケージマネージャからLiteDBを簡単にインストールできます。
** データベースの作成 **:プロジェクト内にLiteDatabaseインスタンスを作成し、データベースファイルパスを指定します。
*** 定義モデル **:データモデルを定義するC#クラスを作成します。
** データの保存とクエリ **:データの保存、クエリ、更新操作にLiteDBが提供するAPIを使用します。
素敵なUI。
Lite.Studioデータベースを管理および視覚化するための新しいUI

特徴は

LiteDBはデータと構造操作のためのSQLライク言語をサポートする。非常に似たSQLリレーショナル言語を使用して、データベースを挿入、更新、削除、またはクエリできます。
LINQ式ラムダ関数を使用すると、C#コードでスムーズなAPIクエリを作成できます。
新しいLiteDB.Studio 管理ツールはすべてのSQLコマンドをサポートします。
また、クエリエンジンから詳細なEXPLAIN PLANを取得して、書き込まれたクエリが最適なパフォーマンスで実行されるかどうかをチェックすることもできます。
実戦の事例
LiteDBを使用して. NETプロジェクトでデータの追加、削除、削除、変更を実装する方法を簡単な実例で示します。
// Create your POCO class
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string[] Phones { get; set; }
public bool IsActive { get; set; }
}
// Open database (or create if doesn't exist)
using(var db = new LiteDatabase(@"MyData.db"))
{
// Get customer collection
var col = db.GetCollection<Customer>("customers");
// Create your new customer instance
var customer = new Customer
{
Name = "John Doe",
Phones = new string[] { "8000-0000", "9000-0000" },
Age = 39,
IsActive = true
};
// Create unique index in Name field
col.EnsureIndex(x => x.Name, true);
// Insert new customer document (Id will be auto-incremented)
col.Insert(customer);
// Update a document inside a collection
customer.Name = "Joana Doe";
col.Update(customer);
// Use LINQ to query documents (with no index)
var results = col.Find(x => x.Age > 20);
}
より複雑なデータモデルの利用
// DbRef to cross references
public class Order
{
public ObjectId Id { get; set; }
public DateTime OrderDate { get; set; }
public Address ShippingAddress { get; set; }
public Customer Customer { get; set; }
public List<Product> Products { get; set; }
}
// Re-use mapper from global instance
var mapper = BsonMapper.Global;
// "Products" and "Customer" are from other collections (not embedded document)
mapper.Entity<Order>()
.DbRef(x => x.Customer, "customers") // 1 to 1/0 reference
.DbRef(x => x.Products, "products") // 1 to Many reference
.Field(x => x.ShippingAddress, "addr"); // Embedded sub document
using(var db = new LiteDatabase("MyOrderDatafile.db"))
{
var orders = db.GetCollection<Order>("orders");
// When query Order, includes references
var query = orders
.Include(x => x.Customer)
.Include(x => x.Products) // 1 to many reference
.Find(x => x.OrderDate <= DateTime.Now);
// Each instance of Order will load Customer/Products references
foreach(var order in query)
{
var name = order.Customer.Name;
...
}
}
まとめまとめまとめ
LiteDBは、軽量No SQLデータベースとして、小型で高性能で使いやすいことから、. NET開発の世界で広く認知されています。初心者でも上級開発者でも、LiteDBを使用してプロジェクトのデータストレージソリューションを試してみてください。