Exemple #1
0
 protected virtual void VisitRelation(IDropBuilder expression, IRelationBuilder relation, ITableConfig leftTable, ITableConfig rightTable)
 {
     this.Builder.AppendFormat("{0} ", this.Database.QueryFactory.Dialect.ALTER);
     this.Builder.AppendFormat("{0} ", this.Database.QueryFactory.Dialect.TABLE);
     this.Builder.AppendFormat("{0} ", this.Database.QueryFactory.Dialect.Identifier(rightTable.TableName));
     this.Builder.AppendFormat("{0} ", this.Database.QueryFactory.Dialect.DROP);
     this.Builder.AppendFormat("{0} ", this.Database.QueryFactory.Dialect.CONSTRAINT);
     this.Builder.AppendFormat("{0} ", this.Database.QueryFactory.Dialect.Identifier(Conventions.RelationName(leftTable, rightTable)));
 }
Exemple #2
0
        protected virtual void VisitRelation(IDropBuilder expression, IRelationBuilder relation)
        {
            switch (relation.Relation.Flags.GetMultiplicity())
            {
            case RelationFlags.OneToOne:
            case RelationFlags.OneToMany:
                this.VisitRelation(expression, relation, relation.Relation.LeftTable, relation.Relation.RightTable);
                break;

            case RelationFlags.ManyToMany:
                this.VisitRelation(expression, relation, relation.Relation.LeftTable, relation.Relation.MappingTable);
                this.Builder.AppendFormat("{0} ", this.Database.QueryFactory.Dialect.BATCH);
                this.VisitRelation(expression, relation, relation.Relation.RightTable, relation.Relation.MappingTable);
                break;

            default:
                throw new NotImplementedException();
            }
        }
 protected override void VisitDrop(IFragmentBuilder parent, IQueryGraphBuilder graph, IDropBuilder expression)
 {
     this.Push(new SQLiteDropWriter(parent, graph, this.Database, this, this.Parameters));
     this.Peek.Write(expression);
     this.Pop();
 }
Exemple #4
0
 protected virtual void VisitIndex(IDropBuilder expression, IIndexBuilder index)
 {
     this.Builder.AppendFormat("{0} ", this.Database.QueryFactory.Dialect.DROP);
     this.Builder.AppendFormat("{0} ", this.Database.QueryFactory.Dialect.INDEX);
     this.Builder.AppendFormat("{0} ", this.Database.QueryFactory.Dialect.Identifier(Conventions.IndexName(index.Index)));
 }
Exemple #5
0
 protected virtual void VisitTable(IDropBuilder expression, ITableBuilder table)
 {
     this.Builder.AppendFormat("{0} ", this.Database.QueryFactory.Dialect.DROP);
     this.Builder.AppendFormat("{0} ", this.Database.QueryFactory.Dialect.TABLE);
     this.Visit(table);
 }
Exemple #6
0
 protected override void VisitRelation(IDropBuilder expression, IRelationBuilder relation)
 {
     //TODO: SQLite cannot ALTER TABLE DROP FOREIGN KEY which makes this kind of thing tricky.
 }
Exemple #7
0
 protected override void VisitDrop(IFragmentBuilder parent, IQueryGraphBuilder graph, IDropBuilder expression)
 {
     //Nothing to do.
 }
Exemple #8
0
 protected abstract void VisitDrop(IFragmentBuilder parent, IQueryGraphBuilder graph, IDropBuilder expression);