public void CanUseLoadDocumentToIndexReferencedDocs() { using (var store = GetDocumentStore()) { var postsByContent = new Posts_ByContent(); postsByContent.Execute(store); var companiesWithEmployees = new Companies_WithReferencedEmployees(); companiesWithEmployees.Execute(store); var companiesWithEmployeesTransformer = new CompanyEmployeesTransformer(); companiesWithEmployeesTransformer.Execute(store); using (var session = store.OpenSession()) { for (int i = 0; i < 10; i++) { session.Store(new Post { Id = "posts/" + i }); session.Store(new PostContent { Id = "posts/" + i + "/content", Text = i % 2 == 0 ? "HTML 5" : "Javascript" }); session.Store(new Employee { Id = "employees/" + i, LastName = "Last Name " + i }); } session.Store(new Company { EmployeesIds = new List<string>() { "employees/1", "employees/2", "employees/3" } }); session.SaveChanges(); WaitForIndexing(store); var html5PostsQuery = session.Advanced.DocumentQuery<Post>(postsByContent.IndexName).WhereEquals("Text", "HTML 5"); var javascriptPostsQuery = session.Advanced.DocumentQuery<Post>(postsByContent.IndexName).WhereEquals("Text", "Javascript"); Assert.Equal(5, html5PostsQuery.ToList().Count); Assert.Equal(5, javascriptPostsQuery.ToList().Count); var companies = session.Advanced.DocumentQuery<Companies_WithReferencedEmployees.CompanyEmployees>(companiesWithEmployees.IndexName) .SetResultTransformer(companiesWithEmployeesTransformer.TransformerName) .ToArray(); Assert.Equal(1, companies.Length); Assert.Equal("Last Name 1", companies[0].Employees[0]); Assert.Equal("Last Name 2", companies[0].Employees[1]); Assert.Equal("Last Name 3", companies[0].Employees[2]); } } }
public void CanUseLoadDocumentToIndexReferencedDocs() { using (var store = GetDocumentStore()) { var postsByContent = new Posts_ByContent(); postsByContent.Execute(store); var companiesWithEmployees = new Companies_WithReferencedEmployees(); companiesWithEmployees.Execute(store); var companiesWithEmployeesTransformer = new CompanyEmployeesTransformer(); companiesWithEmployeesTransformer.Execute(store); using (var session = store.OpenSession()) { for (int i = 0; i < 10; i++) { session.Store(new Post { Id = "posts/" + i }); session.Store(new PostContent { Id = "posts/" + i + "/content", Text = i % 2 == 0 ? "HTML 5" : "Javascript" }); session.Store(new Employee { Id = "employees/" + i, LastName = "Last Name " + i }); } session.Store(new Company { EmployeesIds = new List <string>() { "employees/1", "employees/2", "employees/3" } }); session.SaveChanges(); WaitForIndexing(store); var html5PostsQuery = session.Advanced.DocumentQuery <Post>(postsByContent.IndexName).WhereEquals("Text", "HTML 5"); var javascriptPostsQuery = session.Advanced.DocumentQuery <Post>(postsByContent.IndexName).WhereEquals("Text", "Javascript"); Assert.Equal(5, html5PostsQuery.ToList().Count); Assert.Equal(5, javascriptPostsQuery.ToList().Count); var companies = session.Advanced.DocumentQuery <Companies_WithReferencedEmployees.CompanyEmployees>(companiesWithEmployees.IndexName) .SetResultTransformer(companiesWithEmployeesTransformer.TransformerName) .ToArray(); Assert.Equal(1, companies.Length); Assert.Equal("Last Name 1", companies[0].Employees[0]); Assert.Equal("Last Name 2", companies[0].Employees[1]); Assert.Equal("Last Name 3", companies[0].Employees[2]); } } }
public void BasicTransformerWithLoadDocuments() { using (var store = GetDocumentStore()) { var transformer = new CompanyEmployeesTransformer(); transformer.Execute(store); var transformerDefinition = transformer.CreateTransformerDefinition(); var serverDefinition = store.DatabaseCommands.GetTransformer(transformer.TransformerName); Assert.True(transformerDefinition.Equals(serverDefinition)); using (var session = store.OpenSession()) { var employee1 = new Employee { LastName = "John" }; var employee2 = new Employee { LastName = "Bob" }; session.Store(employee1); session.Store(employee2); session.Store(new Company { Name = "Amazing", EmployeesIds = new List <string> { employee1.Id, employee2.Id } }); session.Store(new Company { Name = "Brilliant", EmployeesIds = new List <string> { employee2.Id } }); session.SaveChanges(); } using (var session = store.OpenSession()) { var result = session.Load <CompanyEmployeesTransformer.Result>("companies/1", typeof(CompanyEmployeesTransformer)); Assert.Equal("Amazing", result.Name); Assert.True(result.Employees.SequenceEqual(new[] { "John", "Bob" })); var results = session.Load <CompanyEmployeesTransformer.Result>(new[] { "companies/1", "companies/2" }, typeof(CompanyEmployeesTransformer)); Assert.Equal(2, results.Length); Assert.True(results[0].Employees.SequenceEqual(new[] { "John", "Bob" })); Assert.Equal("Amazing", results[0].Name); Assert.True(results[1].Employees.SequenceEqual(new[] { "Bob" })); Assert.Equal("Brilliant", results[1].Name); } } }