public void Parse_can_translate() { var results = Enumerable.ToList( from p in _db.Patriarchy where p.Id == HierarchyId.GetRoot() select HierarchyId.Parse(p.Id.ToString())); Assert.Equal( condense(@"SELECT hierarchyid::Parse([p].[Id].ToString()) FROM [Patriarchy] AS [p] WHERE [p].[Id] = '/'"), condense(_db.Sql)); Assert.Equal(new[] { HierarchyId.Parse("/") }, results); }
public void HierarchyId_can_be_sent_as_parameter() { var results = Enumerable.ToList( from p in _db.Patriarchy where p.Id == HierarchyId.Parse("/1/") select p.Name); Assert.Equal( condense(@"SELECT [p].[Name] FROM [Patriarchy] AS [p] WHERE [p].[Id] = '/1/'"), condense(_db.Sql)); Assert.Equal(new[] { "Isaac" }, results); }
public void GetDescendent_can_translate() { var results = Enumerable.ToList( from p in _db.Patriarchy where p.Id.GetLevel() == 0 select p.Id.GetDescendant(null, null)); Assert.Equal( condense(@"SELECT [p].[Id].GetDescendant(NULL, NULL) FROM [Patriarchy] AS [p] WHERE [p].[Id].GetLevel() = CAST(0 AS smallint)"), condense(_db.Sql)); Assert.Equal(new[] { HierarchyId.Parse("/1/") }, results); }
public void HierarchyId_can_call_method_on_parameter() { var isaac = HierarchyId.Parse("/1/"); var results = Enumerable.ToList( from p in _db.Patriarchy where isaac.IsDescendantOf(p.Id) select p.Name); Assert.Equal( condense(@"SELECT [p].[Name] FROM [Patriarchy] AS [p] WHERE @__isaac_0.IsDescendantOf([p].[Id]) = CAST(1 AS bit)"), condense(_db.Sql)); Assert.Equal(new[] { "Abraham", "Isaac" }, results); }