public void SearchConstantTable()
        {
            EntityTypeSearchVisitor search = new EntityTypeSearchVisitor();

            var db = new Database();
            var table = db.Tables.Create<Member, string>(x => x.Id, null);

            Expression expr = Expression.Constant(table);

            search.Visit(expr);

            Assert.AreEqual(1, search.FoundEntityTypes.Length);
            Assert.AreEqual(typeof(Member), search.FoundEntityTypes[0]);
        }
Esempio n. 2
0
        public static ITable[] FindAffectedTables(IDatabase database, IExecutionPlan plan)
        {
            EntityTypeSearchVisitor search = new EntityTypeSearchVisitor();
            search.Visit(plan.Info.Final);

            ISet<ITable> result = new HashSet<ITable>();

            foreach (Type entityType in search.FoundEntityTypes)
            {
                result.Add(database.Tables.FindTable(entityType));
            }

            return result.ToArray();
        }
        public void SearchIndex()
        {
            EntityTypeSearchVisitor search = new EntityTypeSearchVisitor();

            var db = new Database();
            var table = db.Tables.Create<Member, string>(x => x.Id, null);
            var index = table.CreateIndex(new RedBlackTreeIndexFactory(), x => x.GroupId);

            Expression expr = Expression.Constant(index);

            search.Visit(expr);

            Assert.AreEqual(1, search.FoundEntityTypes.Length);
            Assert.AreEqual(typeof(Member), search.FoundEntityTypes[0]);
        }
        public void SearchTableCollectionFindTable()
        {
            EntityTypeSearchVisitor search = new EntityTypeSearchVisitor();

            var db = new Database();

            Expression expr = Expression.Call(
                Expression.Property(
                    Expression.Constant(db),
                    DatabaseMembers.Database_Tables),
                DatabaseMembers.TableCollection_FindTable,
                Expression.Constant(typeof(Member)));

            search.Visit(expr);

            Assert.AreEqual(1, search.FoundEntityTypes.Length);
            Assert.AreEqual(typeof(Member), search.FoundEntityTypes[0]);
        }