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()メソッドを呼び出します。



ソース





All Articles