Esempio n. 1
0
        /// <summary>
        /// Creates SQL to create auxiliary database objects.
        /// </summary>
        /// <param name="dialect">The dialect.</param>
        /// <param name="mapping">The mapping.</param>
        /// <param name="defaultCatalog">The default catalog.</param>
        /// <param name="defaultSchema">The default schema.</param>
        /// <returns></returns>
        public override string SqlCreateString(NHibernate.Dialect.Dialect dialect, IMapping mapping, string defaultCatalog, string defaultSchema)
        {
            ISpatialDialect spatialDialect = (ISpatialDialect)dialect;
            StringBuilder   builder        = new StringBuilder();

            // Create general objects
            builder.Append(spatialDialect.GetSpatialCreateString(defaultSchema));

            // Create objects per column
            VisitGeometryColumns(delegate(Table table, Column column)
            {
                // Ugly trick: We use Comparator property to get the column instance of IGeometryUserType.
                // (Comparator is mainly used in IVersionType comparisons)
                // Maybe it will require to implement IComparer in IGeometryUserType, just to comply.
                //
                // It would be nicer if CustomType made UserType property public (today is protected).
                IGeometryUserType geometryType = (IGeometryUserType)((CustomType)column.Value.Type).Comparator;

                // The previous trick allows to get geometry type properties, such as SRID.
                int srid       = geometryType.SRID;
                string subtype = geometryType.Subtype;

                builder.Append(spatialDialect.GetSpatialCreateString(defaultSchema, table.Name, column.Name, srid, subtype));
            });

            return(builder.ToString());
        }
Esempio n. 2
0
        public static ISessionFactory GetSessionFactory()
        {
            if (sessionFactory != null)
            {
                return(sessionFactory);
            }

            var dialects = new NHibernate.Dialect.Dialect[] {
                new NHibernate.Dialect.PostgreSQLDialect()
            };

            try
            {
                sessionFactory = Fluently.Configure()
                                 .ExposeConfiguration(cfg => cfg.Properties.Add("use_proxy_validator", "false"))
                                 .Database(PostgreSQLConfiguration.Standard
                                           .ConnectionString("Server=unitypoker.eu;Database=unitypoker;User ID=postgres;Password=unity123;"))
                                 .Mappings
                                     (m =>
                                     m.FluentMappings.AddFromAssemblyOf <DatabaseMapping>()
                                     .Conventions.Add(ConventionBuilder.Class.Always(x => x.Table(x.TableName.ToLower())))
                                     )
                                 .BuildSessionFactory();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }

            return(sessionFactory);
        }
 public void Configure(IType type, IDictionary <string, string> parms, NHibernate.Dialect.Dialect dialect)
 {
     parms.TryGetValue(IdGeneratorParmsNames.EntityName, out entityName);
     if (entityName == null)
     {
         throw new MappingException("no entity name");
     }
 }
Esempio n. 4
0
        public static void Register(NHibernate.Dialect.Dialect dialect)
        {
            // Tell NHibernate that contains() and freetext() are available as SQL functions
            RegisterFunction(dialect, "contains", new StandardSQLFunction("contains", null));
            RegisterFunction(dialect, "freetext", new StandardSQLFunction("freetext", null));

            // This trick prevents the need to configure the generator specifically
            dialect.DefaultProperties["linqtohql.generatorsregistry"] = typeof(FullTextLinqtoHqlGeneratorsRegistry).AssemblyQualifiedName;
        }
Esempio n. 5
0
        public static DataTable GetCompleteColumnSchema(this NHibernate.Dialect.Dialect dialect, DbConnection connection, string schema, string table)
        {
            DbCommand command = connection.CreateCommand();

            command.CommandText = "select * from " + GetTableName(schema, table, dialect);
            using (DbDataReader reader = command.ExecuteReader(CommandBehavior.SchemaOnly | CommandBehavior.KeyInfo))
            {
                return(reader.GetSchemaTable());
            }
        }
Esempio n. 6
0
 private static string GetTableName(string schema, string table, NHibernate.Dialect.Dialect dialect)
 {
     if (!string.IsNullOrEmpty(schema))
     {
         return(string.Format("{0}.{1}", dialect.QuoteForTableName(schema), dialect.QuoteForTableName(table)));
     }
     else
     {
         return(dialect.QuoteForTableName(table));
     }
 }
        /// <summary>
        /// Creates SQL to create auxiliary database objects.
        /// </summary>
        /// <param name="dialect">The dialect.</param>
        /// <param name="mapping">The mapping.</param>
        /// <param name="defaultCatalog">The default catalog.</param>
        /// <param name="defaultSchema">The default schema.</param>
        /// <returns></returns>
        public override string SqlCreateString(NHibernate.Dialect.Dialect dialect, IMapping mapping, string defaultCatalog, string defaultSchema)
        {
            ISpatialDialect spatialDialect = (ISpatialDialect)dialect;
            StringBuilder   builder        = new StringBuilder();

            // Create general objects
            builder.Append(spatialDialect.GetSpatialCreateString(defaultSchema));

            // Create objects per column
            VisitGeometryColumns((tbl, col) => ColumnVisitorSQLCreate(tbl, col, builder, defaultSchema, spatialDialect));

            return(builder.ToString());
        }
        /// <summary>
        /// Creates SQL to drop auxiliary database objects.
        /// </summary>
        /// <param name="dialect">The dialect.</param>
        /// <param name="defaultCatalog">The default catalog.</param>
        /// <param name="defaultSchema">The default schema.</param>
        /// <returns></returns>
        public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema)
        {
            ISpatialDialect spatialDialect = (ISpatialDialect)dialect;
            StringBuilder   builder        = new StringBuilder();

            // Drop objects per column
            VisitGeometryColumns((table, column) => builder.Append(spatialDialect.GetSpatialDropString(defaultSchema, table.Name, column.Name)));

            // Drop general objects
            builder.Append(spatialDialect.GetSpatialDropString(defaultSchema));

            return(builder.ToString());
        }
Esempio n. 9
0
        /// <summary>
        /// Add a spatial metadata class mapping to NHibernate configuration.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        /// <param name="clazz">The clazz.</param>
        /// <remarks>
        /// DO NOT add metadata class mappings when using the SchemaExport utility.
        /// You could lose all contents of those tables.
        /// </remarks>
        public static void AddMapping(Configuration configuration, MetadataClass clazz)
        {
            NHibernate.Dialect.Dialect dialect = NHibernate.Dialect.Dialect.GetDialect(configuration.Properties);

            string resource = typeof(Metadata).Namespace
                              + "."
                              + clazz.ToString()
                              + "."
                              + dialect.GetType().Name
                              + ".hbm.xml";

            configuration.AddResource(resource, dialect.GetType().Assembly);
        }
        /// <summary>
        /// Creates SQL to create auxiliary database objects.
        /// </summary>
        /// <param name="dialect">The dialect.</param>
        /// <param name="mapping">The mapping.</param>
        /// <param name="defaultCatalog">The default catalog.</param>
        /// <param name="defaultSchema">The default schema.</param>
        /// <returns></returns>
        public override string SqlCreateString(NHibernate.Dialect.Dialect dialect, IMapping mapping, string defaultCatalog, string defaultSchema)
        {
            ISpatialDialect spatialDialect = (ISpatialDialect)dialect;
            StringBuilder   builder        = new StringBuilder();

            // Create general objects
            builder.Append(spatialDialect.GetSpatialCreateString(defaultSchema));

            // Create objects per column
            VisitGeometryColumns(delegate(Table table, Column column)
            {
                IGeometryUserType geometryType = (IGeometryUserType)((CustomType)column.Value.Type).UserType;
                int srid       = geometryType.SRID;
                string subtype = geometryType.Subtype;
                int dimension  = geometryType.Dimension;

                builder.Append(spatialDialect.GetSpatialCreateString(defaultSchema, table.Name, column.Name, srid, subtype, dimension));
            });

            return(builder.ToString());
        }
Esempio n. 11
0
 private NHibernate.Dialect.Dialect GetDialect()
 {
     if (string.IsNullOrEmpty(cfg.connectioninfo.dialect))
     {
         throw new Exception("Dialect must be specified");
     }
     System.Type tDialect = System.Type.GetType(cfg.connectioninfo.dialect);
     if (null == tDialect)
     {
         throw new Exception("Cannot create dialect:" + cfg.connectioninfo.dialect);
     }
     if (!typeof(NHibernate.Dialect.Dialect).IsAssignableFrom(tDialect))
     {
         throw new Exception("Dialect:" + cfg.connectioninfo.dialect + " is not a valid dialect.");
     }
     NHibernate.Dialect.Dialect dialect = Activator.CreateInstance(tDialect) as NHibernate.Dialect.Dialect;
     if (null == dialect)
     {
         throw new Exception("Cannot instantiate:" + cfg.connectioninfo.dialect + " dialect");
     }
     return(dialect);
 }
Esempio n. 12
0
        /// <summary>
        /// Called to initialize setup NHibernate and ActiveRecord
        /// </summary>
        /// <param name="asm"></param>
        /// <param name="dbType"></param>
        /// <param name="connStr"></param>
        /// <returns>Whether its a fatal error</returns>
        public static bool InitAR(Assembly asm)
        {
            if (s_configReader == null)
            {
                s_configReader =
                    DatabaseConfiguration.GetARConfiguration(DBType, ConnectionString);
                if (s_configReader == null)
                {
                    throw new Exception("Invalid Database Type: " + DBType);
                }
            }

            s_config = new XmlConfigurationSource(s_configReader);
            NHibernate.Cfg.Environment.UseReflectionOptimizer = true;
            ActiveRecordStarter.Initialize(asm, s_config);
            if (!IsConnected)
            {
                throw new Exception("Failed to connect to Database.");
            }
            s_dialect = NHibernate.Dialect.Dialect.GetDialect(Config.Properties) ??
                        NHibernate.Dialect.Dialect.GetDialect();
            return(true);
        }
        //SQLLite does not support IF THEN and CLUSTERED INDEX constructs - so thes lines have to be commented out
        //SQL Lite is used for Unit test and also for the Fixtures!
        //the dialect is used decide which one to use
        public override string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect)
        {
            List <String> commands    = new List <string>();
            var           dialectName = dialect.ToString();

            if (dialectName != "NHibernate.Dialect.SQLiteDialect")
            {
                commands.Add("IF OBJECT_ID('dbo.NH_HiLo', 'U') IS NOT NULL \n DROP TABLE dbo.NH_HiLo; \nGO");
            }

            commands.Add("CREATE TABLE NH_HiLo (TableKey varchar(50), NextHi int)");

            if (dialectName != "NHibernate.Dialect.SQLiteDialect")
            {
                commands.Add("CREATE CLUSTERED INDEX NH_HiLoIndex ON NH_HiLo (TableKey)");
            }

            string[] tables = { "Operation", "BusinessPartner", "PaymentEvent", "BalancePoint", "Account", "Agency", "Tag", "TagDepense", "CustomerProfile", "UserIdentity" };


            var returnArray = commands.Concat(GetInserts(tables)).ToArray();

            return(returnArray);
        }
Esempio n. 14
0
        public static string BuildSelect(string[] columns, string from, string suffix)
        {
            NHibernate.Dialect.Dialect dialect = DatabaseUtil.Dialect;
            StringBuilder stringBuilder        = new StringBuilder();

            stringBuilder.Append("SELECT ");
            for (int index = 0; index < columns.Length; ++index)
            {
                string column = columns[index];
                stringBuilder.Append(dialect.QuoteForColumnName(column));
                if (index < columns.Length - 1)
                {
                    stringBuilder.Append(",");
                }
            }

            stringBuilder.Append(" FROM ");
            stringBuilder.Append(from);
            if (suffix != null)
            {
                stringBuilder.Append(" " + suffix);
            }
            return(stringBuilder.ToString());
        }
Esempio n. 15
0
 protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect)
 {
     return(dialect is NHibernate.Dialect.SQLiteDialect);
 }
Esempio n. 16
0
        private void SetConstantValue(DotNode node, string text, object value)
        {
            if (log.IsDebugEnabled())
            {
                log.Debug("setConstantValue() {0} -> {1} {2}", text, value, value.GetType().Name);
            }

            node.ClearChildren();               // Chop off the rest of the tree.

            if (value is string)
            {
                node.Type = HqlSqlWalker.QUOTED_String;
            }
            else if (value is char)
            {
                node.Type = HqlSqlWalker.QUOTED_String;
            }
            else if (value is byte)
            {
                node.Type = HqlSqlWalker.NUM_INT;
            }
            else if (value is short)
            {
                node.Type = HqlSqlWalker.NUM_INT;
            }
            else if (value is int)
            {
                node.Type = HqlSqlWalker.NUM_INT;
            }
            else if (value is long)
            {
                node.Type = HqlSqlWalker.NUM_LONG;
            }
            else if (value is double)
            {
                node.Type = HqlSqlWalker.NUM_DOUBLE;
            }
            else if (value is decimal)
            {
                node.Type = HqlSqlWalker.NUM_DECIMAL;
            }
            else if (value is float)
            {
                node.Type = HqlSqlWalker.NUM_FLOAT;
            }
            else
            {
                node.Type = HqlSqlWalker.CONSTANT;
            }

            IType type;

            try
            {
                type = TypeFactory.HeuristicType(value.GetType().Name);
            }
            catch (MappingException me)
            {
                throw new QueryException(me);
            }

            if (type == null)
            {
                throw new QueryException(LiteralProcessor.ErrorCannotDetermineType + node.Text);
            }
            try
            {
                ILiteralType literalType           = (ILiteralType)type;
                NHibernate.Dialect.Dialect dialect = _walker.SessionFactoryHelper.Factory.Dialect;
                node.Text = literalType.ObjectToSQLString(value, dialect);
            }
            catch (Exception e)
            {
                throw new QueryException(LiteralProcessor.ErrorCannotFormatLiteral + node.Text, e);
            }

            node.DataType = type;
            node.SetResolvedConstant(text);
        }
 protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect)
 {
     return(dialect.SupportsCircularCascadeDeleteConstraints);
 }
Esempio n. 18
0
 protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect)
 {
     // Database needs to be case-sensitive
     return(dialect is NHibernate.Dialect.Oracle10gDialect);
 }
Esempio n. 19
0
 protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect)
 {
     return(dialect is NHibernate.Dialect.InformixDialect1000);
 }
Esempio n. 20
0
 /// <summary>
 /// Get the SQL string to drop this Constraint in the database.
 /// </summary>
 /// <param name="dialect">The <see cref="Dialect.Dialect"/> to use for SQL rules.</param>
 /// <param name="defaultSchema"></param>
 /// <returns>
 /// A string that contains the SQL to drop this Constraint.
 /// </returns>
 public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultSchema)
 {
     // TODO: NH-421
     return("alter table " + Table.GetQualifiedName(dialect, defaultSchema) + dialect.GetDropIndexConstraintString(Name));
 }
Esempio n. 21
0
 public string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect)
 {
     return((string)value);
 }
Esempio n. 22
0
 protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect)
 {
     return(dialect is Dialect.MsSql2000Dialect);
 }
Esempio n. 23
0
 public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect)
 {
     return((string)(object)'\'' + (object)((TimeSpan)value).Ticks.ToString() + (string)(object)'\'');
 }
 public override void Configure(NHibernate.Type.IType type, IDictionary <string, string> parms, NHibernate.Dialect.Dialect dialect)
 {
     base.Configure(type, parms, dialect);
 }
Esempio n. 25
0
 /// <summary>
 /// Generates DDL for the target database to create the tables.
 /// </summary>
 /// <returns>An array of strings containing the DDL.</returns>
 public string[] GenerateCreateSQL()
 {
     NHibernate.Dialect.Dialect dialect = NHibernate.Dialect.Dialect.GetDialect(SessionManagerFactory.SessionManager.Config.Properties);
     string[] createSql = SessionManagerFactory.SessionManager.Config.GenerateSchemaCreationScript(dialect);
     return(createSql);
 }
Esempio n. 26
0
 protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect)
 {
     return((dialect is NHibernate.Dialect.MsSql2005Dialect) || (dialect is NHibernate.Dialect.MsSql2008Dialect));
 }
Esempio n. 27
0
 /// <summary>
 /// Get the SQL string to drop this Constraint in the database.
 /// </summary>
 /// <param name="dialect">The <see cref="Dialect.Dialect"/> to use for SQL rules.</param>
 /// <param name="defaultSchema"></param>
 /// <returns>
 /// A string that contains the SQL to drop this Constraint.
 /// </returns>
 public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultSchema)
 {
     // TODO: NH-421
     return(string.Format("alter table {0} {1}", Table.GetQualifiedName(dialect, defaultSchema), dialect.GetDropForeignKeyConstraintString(Name)));
 }
Esempio n. 28
0
 public override void Configure(IType type, System.Collections.Generic.IDictionary <string, string> parms, NHibernate.Dialect.Dialect dialect)
 {
     base.Configure(NHibernateUtil.Int32, parms, dialect);
 }
Esempio n. 29
0
 /// <summary>
 /// Generates DDL for the target database to drop the tables.
 /// </summary>
 /// <returns>An array of strings containing the DDL.</returns>
 public string[] GenerateDropSQL()
 {
     NHibernate.Dialect.Dialect dialect = NHibernate.Dialect.Dialect.GetDialect(SessionManagerFactory.SessionManager.Config.Properties);
     string[] dropSql = SessionManagerFactory.SessionManager.Config.GenerateDropSchemaScript(dialect);
     return(dropSql);
 }
Esempio n. 30
0
 internal static void RegisterFunction(NHibernate.Dialect.Dialect dialect, string name, ISQLFunction function)
 {
     RegisterFunctionMethod.Invoke(dialect, new object[] { name, function });
 }