рд╕реНрдЯрд░реНрд▓рд┐рдВрдЧ NoSQL OODB рдХрд╛ рдкрд░рд┐рдЪрдп

рдЫрд╡рд┐
рд╕реНрдЯрд░реНрд▓рд┐рдВрдЧ NoSQL OODB рдПрдХ рд╣рд▓реНрдХрд╛ NoSQL рдСрдмреНрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдЬрд┐рд╕реЗ .NET 4.0, рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ 4/5 рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 7 рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрд╡рд╕рд░реЛрдВ


рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдореЗрдВ рдПрдХ рдкреНрд░рдЬрд╛рддрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдЗрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ:
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 .

рддрджрдиреБрд╕рд╛рд░, рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд╢реБ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗред
рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
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 .

рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдЯреЗрдмрд▓ рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ рдЯрд╛рдЗрдк рдЧрд╛рдЗрдб рдХреА рдХреБрдВрдЬреА рд╣реЛрдЧреА рдФрд░ рд╡реНрдпреВ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рд╣реЛрдЧрд╛ред
рдЕрдм рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
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 .

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдкрдЯрд╛рди () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред

рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ



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


All Articles