public void AsQueryable() { var simpleEntityReflection = new ReflectionHelper <IEntity>(typeof(SimpleEntity).FullName, new Mocks.DomainObjectModelMock(), null); { var entityList = new List <IEntity>() { new DerivedEntity { Data = "d" } }; var q = simpleEntityReflection.AsQueryable(entityList); Console.WriteLine(q.GetType()); Assert.IsTrue(q is IQueryable <SimpleEntity>); Assert.AreEqual("d", ((DerivedEntity)q.Single()).Data); Assert.IsFalse(object.ReferenceEquals(entityList, q)); } { var derivedList = new List <DerivedEntity>() { new DerivedEntity { Data = "d" } }; var q = simpleEntityReflection.AsQueryable(derivedList); Console.WriteLine(q.GetType()); Assert.IsTrue(q is IQueryable <SimpleEntity>); Assert.AreEqual("d", ((DerivedEntity)q.Single()).Data); Assert.IsFalse(object.ReferenceEquals(derivedList, q)); } { var simpleQueryable = new List <SimpleEntity>() { new DerivedEntity { Data = "d" } }.AsQueryable(); var q = simpleEntityReflection.AsQueryable(simpleQueryable); Console.WriteLine(q.GetType()); Assert.IsTrue(q is IQueryable <SimpleEntity>); Assert.AreEqual("d", ((DerivedEntity)q.Single()).Data); Assert.IsTrue(object.ReferenceEquals(simpleQueryable, q), "Optimized."); } { var derivedQueryable = new List <DerivedEntity>() { new DerivedEntity { Data = "d" } }.AsQueryable(); var q = simpleEntityReflection.AsQueryable(derivedQueryable); Console.WriteLine(q.GetType()); Assert.IsTrue(q is IQueryable <SimpleEntity>); Assert.AreEqual("d", ((DerivedEntity)q.Single()).Data); Assert.IsTrue(object.ReferenceEquals(derivedQueryable, q), "Optimized."); } }
public void AsQueryable() { var simpleEntityReflection = new ReflectionHelper<IEntity>(typeof(SimpleEntity).FullName, new Mocks.DomainObjectModelMock(), null); { var entityList = new List<IEntity>() { new DerivedEntity { Data = "d" } }; var q = simpleEntityReflection.AsQueryable(entityList); Console.WriteLine(q.GetType()); Assert.IsTrue(q is IQueryable<SimpleEntity>); Assert.AreEqual("d", ((DerivedEntity)q.Single()).Data); Assert.IsFalse(object.ReferenceEquals(entityList, q)); } { var derivedList = new List<DerivedEntity>() { new DerivedEntity { Data = "d" } }; var q = simpleEntityReflection.AsQueryable(derivedList); Console.WriteLine(q.GetType()); Assert.IsTrue(q is IQueryable<SimpleEntity>); Assert.AreEqual("d", ((DerivedEntity)q.Single()).Data); Assert.IsFalse(object.ReferenceEquals(derivedList, q)); } { var simpleQueryable = new List<SimpleEntity>() { new DerivedEntity { Data = "d" } }.AsQueryable(); var q = simpleEntityReflection.AsQueryable(simpleQueryable); Console.WriteLine(q.GetType()); Assert.IsTrue(q is IQueryable<SimpleEntity>); Assert.AreEqual("d", ((DerivedEntity)q.Single()).Data); Assert.IsTrue(object.ReferenceEquals(simpleQueryable, q), "Optimized."); } { var derivedQueryable = new List<DerivedEntity>() { new DerivedEntity { Data = "d" } }.AsQueryable(); var q = simpleEntityReflection.AsQueryable(derivedQueryable); Console.WriteLine(q.GetType()); Assert.IsTrue(q is IQueryable<SimpleEntity>); Assert.AreEqual("d", ((DerivedEntity)q.Single()).Data); Assert.IsTrue(object.ReferenceEquals(derivedQueryable, q), "Optimized."); } }