public LoadingEntities() { using (var store = new DocumentStore()) { using (var session = store.OpenSession()) { #region loading_entities_1_1 Employee employee = session.Load <Employee>("employees/1"); #endregion } using (var session = store.OpenSession()) { #region loading_entities_1_2 // loading 'employees/1' // and transforming result using 'Employees_NoLastName' transformer // which returns 'LastName' as 'null' Employee employee = session.Load <Employees_NoLastName, Employee>("employees/1"); #endregion } using (var session = store.OpenSession()) { #region loading_entities_1_3 EntityWithIntegerId entity = session.Load <EntityWithIntegerId>(1); #endregion } using (var session = store.OpenSession()) { #region loading_entities_1_4 Employee employee = session.Load <Employee>(1); #endregion } using (var session = store.OpenSession()) { #region loading_entities_2_1 // loading 'products/1' // including document found in 'Supplier' property Product product = session .Include <Product>(x => x.Supplier) .Load <Product>("products/1"); Supplier supplier = session.Load <Supplier>(product.Supplier); // this will not make server call #endregion } using (var session = store.OpenSession()) { #region loading_entities_2_2 // loading 'products/1' // including document found in 'Supplier' property Product product = session .Include("Supplier") .Load <Product>("products/1"); Supplier supplier = session.Load <Supplier>(product.Supplier); // this will not make server call #endregion } using (var session = store.OpenSession()) { #region loading_entities_2_3 // loading 'products/1' // including document found in 'Supplier' property // transforming loaded product according to Products_Transformer Product product = session .Include <Product>(x => x.Supplier) .Load <Products_Transformer, Product>("products/1"); Supplier supplier = session.Load <Supplier>(product.Supplier); // this will not make server call #endregion } using (var session = store.OpenSession()) { #region loading_entities_3_1 Employee[] employees = session.Load <Employee>(new List <string> { "employees/1", "employees/2" }); Employee employee1 = employees[0]; Employee employee2 = employees[1]; #endregion } using (var session = store.OpenSession()) { #region loading_entities_3_2 // loading 'employees/1' and 'employees/2' // and transforming results using 'Employees_NoLastName' transformer // which returns 'LastName' as 'null' Employee[] employees = session .Load <Employees_NoLastName, Employee>(new List <string> { "employees/1", "employees/2" }); Employee employee1 = employees[0]; Employee employee2 = employees[1]; #endregion } using (var session = store.OpenSession()) { #region loading_entities_4_1 // return up to 128 entities with Id that starts with 'employees' Employee[] result = session .Advanced .LoadStartingWith <Employee>("employees", null, 0, 128); #endregion } using (var session = store.OpenSession()) { #region loading_entities_4_2 // return up to 128 entities with Id that starts with 'employees/' // and rest of the key begins with "1" or "2" e.g. employees/10, employees/25 Employee[] result = session .Advanced .LoadStartingWith <Employee>("employees/", "1*|2*", 0, 128); #endregion } using (var session = store.OpenSession()) { #region loading_entities_4_3 // return up to 128 entities with Id that starts with 'employees/' // and rest of the Id have length of 3, begins and ends with "1" // and contains any character at 2nd position e.g. employees/101, employees/1B1 // and transform results using 'Employees_NoLastName' transformer Employee[] result = session .Advanced .LoadStartingWith <Employees_NoLastName, Employee>("employees/", "1?1", 0, 128); #endregion } using (var session = store.OpenSession()) { #region loading_entities_5_1 IEnumerator <StreamResult <Employee> > enumerator = session.Advanced.Stream <Employee>("employees/"); while (enumerator.MoveNext()) { StreamResult <Employee> employee = enumerator.Current; } #endregion } using (var session = store.OpenSession()) { #region loading_entities_6_1 bool isLoaded = session.Advanced.IsLoaded("employees/1"); // false Employee employee = session.Load <Employee>("employees/1"); isLoaded = session.Advanced.IsLoaded("employees/1"); // true #endregion } } }
public TypeSpecific() { var store = new DocumentStore(); #region eployees_custom_convention store.Conventions.RegisterIdConvention <Employee>( (dbname, commands, employee) => string.Format("employees/{0}/{1}", employee.LastName, employee.FirstName)); #endregion #region eployees_custom_async_convention store.Conventions.RegisterAsyncIdConvention <Employee>( (dbname, commands, employee) => new CompletedTask <string>( string.Format("employees/{0}/{1}", employee.LastName, employee.FirstName))); #endregion #region eployees_custom_convention_example using (IDocumentSession session = store.OpenSession()) { session.Store(new Employee { FirstName = "James", LastName = "Bond" }); session.SaveChanges(); } #endregion #region eployees_custom_convention_inheritance using (IDocumentSession session = store.OpenSession()) { session.Store(new Employee // employees/Smith/Adam { FirstName = "Adam", LastName = "Smith" }); session.Store(new EmployeeManager // employees/Jones/David { FirstName = "David", LastName = "Jones" }); session.SaveChanges(); } #endregion #region custom_convention_inheritance_2 store.Conventions.RegisterIdConvention <Employee>( (dbname, commands, employee) => string.Format("employees/{0}/{1}", employee.LastName, employee.FirstName)); store.Conventions.RegisterIdConvention <EmployeeManager>( (dbname, commands, employee) => string.Format("managers/{0}/{1}", employee.LastName, employee.FirstName)); using (IDocumentSession session = store.OpenSession()) { session.Store(new Employee // employees/Smith/Adam { FirstName = "Adam", LastName = "Smith" }); session.Store(new EmployeeManager // managers/Jones/David { FirstName = "David", LastName = "Jones" }); session.SaveChanges(); } #endregion #region id_generation_on_load_1 store.Conventions.RegisterIdConvention <EntityWithIntegerId>( (databaseName, commands, entity) => "ewi/" + entity.Id); #endregion #region id_generation_on_load_2 store.Conventions.RegisterIdLoadConvention <EntityWithIntegerId>(id => "ewi/" + id); using (IDocumentSession session = store.OpenSession()) { EntityWithIntegerId entity = session.Load <EntityWithIntegerId>(1); // will load 'ewi/1' document } #endregion }