public void Can_query_for_strongly_typed_hierarchyid_using_type_construction() { using (var context = new HierarchyIdNorthwindContext(_connectionString)) { var query = @"select value ProductivityApiTests.SupplierWithHierarchyId(-77, N'MyName', Edm.HierarchyIdParse(""/1/"")) from [HierarchyIdNorthwindContext].[Suppliers] as SupplierWithHierarchyId"; Assert.Equal(16, TestWithReader(context, query, r => Assert.IsType <HierarchyId>(r.GetValue(2)))); } }
private void DbQuery_with_TVFs_mapped_to_arbitrary_instance_methods_involving_hierarchyid_types_works( Func <IQueryable <IQueryable <SupplierWithHierarchyId> >, List <IQueryable <SupplierWithHierarchyId> > > toList) { using (var context = new HierarchyIdNorthwindContext(_connectionString)) { var suppliers = (from x in context.Suppliers select ArbitrarySuppliersWithinRange( HierarchyId.Parse("/1/"), HierarchyId.Parse("/10/"))).ToList(); Assert.Equal(16, suppliers.Count); } }
public void Can_query_for_strongly_typed_hierarchyid_using_complex_type_type_construction() { using (var context = new HierarchyIdNorthwindContext(_connectionString)) { var query = @"select value ProductivityApiTests.ComplexWithHierarchyId(N'A', Edm.HierarchyIdParse(""/1/"")) from [HierarchyIdNorthwindContext].[Widgets] as WidgetWithHierarchyId"; Assert.Equal( 4, TestWithReader( context, query, r => { Assert.Equal("A", r.GetString(0)); Assert.IsType <HierarchyId>(r.GetValue(1)); })); } }
public void Can_query_for_strongly_typed_hierarchyid_using_type_construction2() { using (var context = new HierarchyIdNorthwindContext(_connectionString)) { var query = @"select value ProductivityApiTests.WidgetWithHierarchyId(-77, N'MyName', Edm.HierarchyIdParse(""/1/""), ProductivityApiTests.ComplexWithHierarchyId(N'A', Edm.HierarchyIdParse(""/1/""))) from [HierarchyIdNorthwindContext].[Widgets] as WidgetWithHierarchyId"; Assert.Equal( 4, TestWithReader( context, query, r => { Assert.Equal(-77, r.GetInt32(0)); Assert.IsType <HierarchyId>(r.GetValue(2)); var nestedRecord = r.GetDataRecord(3); Assert.IsType <HierarchyId>(nestedRecord.GetValue(1)); })); } }
Can_materialize_record_containing_hierarchyid_types_and_get_names_of_the_types_without_null_arg_exception( Func <IQueryable <DbDataRecord>, List <DbDataRecord> > toList) { using (var context = new HierarchyIdNorthwindContext(_connectionString)) { var query = @"select o.[Path] from [HierarchyIdNorthwindContext].[Suppliers] as [o]"; var results = ExecuteESqlQuery(context, query, toList); Assert.Equal(16, results.Count); foreach (var result in results) { Assert.Equal("Path", result.GetName(0)); // GetName would throw Assert.Same(typeof(HierarchyId), result.GetFieldType(0)); } } }
public void DbQuery_SelectMany_with_TVFs_and_hierarchyid_types_works() { using (var context = new HierarchyIdNorthwindContext(_connectionString)) { var results = (from s1 in context.SuppliersWithinRange(HierarchyId.Parse("/-100/"), HierarchyId.Parse("/100/")) from s2 in context.SuppliersWithinRange(HierarchyId.Parse("/-100/"), HierarchyId.Parse("/100/")) where s1.Name == s2.Name select new { s1, s2 }).ToList(); Assert.Equal(16, results.Count); } }
public void DbQuery_SelectMany_with_TVFs_and_hierarchyid_types_using_Point_and_Point_return_in_function_import_works() { using (var context = new HierarchyIdNorthwindContext(_connectionString)) { context.Database.Initialize(force: false); var results = (from s1 in context.SupplierHierarchyIdsWithinRange( HierarchyId.Parse("/-100/"), HierarchyId.Parse("/100/")) from s2 in context.SupplierHierarchyIdsWithinRange( HierarchyId.Parse("/-100/"), HierarchyId.Parse("/100/")) select new { s1, s2 }).ToList(); Assert.Equal(256, results.Count); } }