/// <summary>
        /// DiscriminatedCollectionColumnMap
        /// </summary>
        /// <param name="columnMap"></param>
        /// <param name="replacementVarMap"></param>
        /// <returns></returns>
        internal override ColumnMap Visit(DiscriminatedCollectionColumnMap columnMap, VarMap replacementVarMap)
        {
            ColumnMap       newElementColumnMap = columnMap.Element.Accept(this, replacementVarMap);
            SimpleColumnMap newDiscriminator    = (SimpleColumnMap)columnMap.Discriminator.Accept(this, replacementVarMap);

            SimpleColumnMap[] newKeys        = VisitList(columnMap.Keys, replacementVarMap);
            SimpleColumnMap[] newForeignKeys = VisitList(columnMap.ForeignKeys, replacementVarMap);
            return(new DiscriminatedCollectionColumnMap(columnMap.Type, columnMap.Name, newElementColumnMap, newKeys, newForeignKeys, newDiscriminator, columnMap.DiscriminatorValue));
        }
Example #2
0
            /// <summary>
            /// DiscriminatedCollectionColumnMap
            /// </summary>
            /// <param name="columnMap"></param>
            /// <param name="dumper"></param>
            /// <returns></returns>
            internal override void Visit(DiscriminatedCollectionColumnMap columnMap, Dump dumper)
            {
                using (new AutoXml(dumper, "DiscriminatedCollection", GetAttributes(columnMap))) {
                    Dictionary <string, object> attrs = new Dictionary <string, object>();
                    attrs.Add("Value", columnMap.DiscriminatorValue);

                    using (new AutoXml(dumper, "discriminator", attrs)) {
                        columnMap.Discriminator.Accept(this, dumper);
                    }
                    DumpCollection(columnMap, dumper);
                }
            }
Example #3
0
 internal virtual void Visit(DiscriminatedCollectionColumnMap columnMap, TArgType arg)
 {
     columnMap.Discriminator.Accept(this, arg);
     foreach (SimpleColumnMap fk in columnMap.ForeignKeys)
     {
         fk.Accept(this, arg);
     }
     foreach (SimpleColumnMap k in columnMap.Keys)
     {
         k.Accept(this, arg);
     }
     columnMap.Element.Accept(this, arg);
 }
Example #4
0
 internal abstract TResultType Visit(DiscriminatedCollectionColumnMap columnMap, TArgType arg);