Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>How did you solve this? My implementing your own idgenerator?</p> <p>I did and maybe a little bit dirty for the moment but anyway:</p> <pre><code>public class TableHiLoGeneratorWithMultipleColumns : NHibernate.Id.TableHiLoGenerator { static HashSet&lt;string&gt; tables = new HashSet&lt;string&gt;(); public override void Configure(IType type, IDictionary&lt;string, string&gt; parms, Dialect dialect) { string table; if (parms.ContainsKey("target_table")) { table = parms["target_table"]; tables.Add(table); parms["column"] = string.Format("{0}_{1}", DefaultColumnName, table); } base.Configure(type, parms, dialect); } public override string[] SqlCreateStrings(Dialect dialect) { string createTableTemplate = "create table " + DefaultTableName + "({0})"; string insertInitialValuesTemplate = "insert into " + DefaultTableName + "({0})" + " values ( {1} )"; StringBuilder createTables = new StringBuilder(); StringBuilder columns = new StringBuilder(); StringBuilder inserts = new StringBuilder(); StringBuilder initialInsert = new StringBuilder(); StringBuilder insertsValues = new StringBuilder(); foreach (string table in tables) { columns.AppendFormat("{0}_{1} {2},", DefaultColumnName, table, dialect.GetTypeName(columnSqlType)); inserts.AppendFormat("{0}_{1},", DefaultColumnName, table); insertsValues.Append("1, "); } columns.Remove(columns.Length - 1, 1); inserts.Remove(inserts.Length - 1, 1); createTables.AppendFormat(createTableTemplate, columns); insertsValues.Remove(insertsValues.Length - 2, 2); initialInsert.AppendFormat(insertInitialValuesTemplate, inserts, insertsValues); return new[] { createTables.ToString(), initialInsert.ToString() }; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload