/// <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()); }
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"); } }
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; }
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()); } }
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()); }
/// <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()); }
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); }
/// <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); }
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()); }
protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect) { return(dialect is NHibernate.Dialect.SQLiteDialect); }
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); }
protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect) { // Database needs to be case-sensitive return(dialect is NHibernate.Dialect.Oracle10gDialect); }
protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect) { return(dialect is NHibernate.Dialect.InformixDialect1000); }
/// <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)); }
public string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) { return((string)value); }
protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect) { return(dialect is Dialect.MsSql2000Dialect); }
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); }
/// <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); }
protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect) { return((dialect is NHibernate.Dialect.MsSql2005Dialect) || (dialect is NHibernate.Dialect.MsSql2008Dialect)); }
/// <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))); }
public override void Configure(IType type, System.Collections.Generic.IDictionary <string, string> parms, NHibernate.Dialect.Dialect dialect) { base.Configure(NHibernateUtil.Int32, parms, dialect); }
/// <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); }
internal static void RegisterFunction(NHibernate.Dialect.Dialect dialect, string name, ISQLFunction function) { RegisterFunctionMethod.Invoke(dialect, new object[] { name, function }); }