Sterling NoSQL OODBの概要

画像
Sterling NoSQL OODBは、.NET 4.0、Silverlight 4/5、およびWindows Phone 7のプロジェクトで使用するために設計された軽量のNoSQLオブジェクトデータベースです。

特徴


使用例

種データベースを保存する必要があるとします。 次のエンティティについて説明しましょう。
enum FeedingType {
Herbivore,
Carnivore,
Omnivore
}

class Feeding {
public FeedingType Type { get ; set ; }
public TimeSpan DefaultInterval { get ; set ; }
}

class Animal {
public Guid Key { get ; set ; }
public string Name { get ; set ; }
public TimeSpan LifeExpectancy { get ; set ; }
public Feeding Supply { get ; set ; }
}

* This source code was highlighted with Source Code Highlighter .

したがって、Animalタイプのオブジェクトをデータベースに保存します。
次に、データベースの構造を説明する必要があります。
class BiologyDatabaseInstance: BaseDatabaseInstance {
public const string INDEX_ANIMAL_NAME = "idx_animal_name" ;

public override string Name { get { return "BiologyDb" ; } }

protected override List <ITableDefinition> RegisterTables () {
// - .
return new List <ITableDefinition> {
CreateTableDefinition<Animal, Guid > (animal => animal.Key)
.WithIndex<Animal, string , Guid > (INDEX_ANIMAL_NAME, animal => animal.Name)
};
}
}


* This source code was highlighted with Source Code Highlighter .

データベースには、タイプGuidのキーとビューの名前のインデックスを持つテーブルが1つあります。
次に、実際にデータベースをアクティブにする必要があります。
var engine = new SterlingEngine ();
engine.Activate();
var databaseInstance = engine.SterlingDatabase.RegisterDatabase<BiologyDatabaseInstance> (
new FileSystemDriver ( "C:/Temp/Animals/" ));

* This source code was highlighted with Source Code Highlighter .

以上です。 使用できます。 すべての作業は、登録時に当社に提供されたコピーを通じて実行されます。 例:
var catId = databaseInstance.Save ( new Animal {
Key = Guid .NewGuid (),
LifeExpectancy = TimeSpan .FromDays (365 * 15),
Name = "Cat" ,
Supply = new Feeding {
Type = FeedingType.Carnivore,
DefaultInterval = TimeSpan .FromHours (12)
}
});

var cat = databaseInstance.Load<Animal> (catId);

var orderedAnimals = databaseInstance
.Query<Animal, string , Guid > (BiologyDatabaseInstance.INDEX_ANIMAL_NAME)
.OrderBy (x => x.Index)
.Select (x => x.LazyValue.Value);


* This source code was highlighted with Source Code Highlighter .

データベースの操作を終了するには、Dispose()メソッドを呼び出します。

ソース



Source: https://habr.com/ru/post/J132114/


All Articles