Ich habe eine Zuordnung, die Objektfeld Datenbank zugeordnet.Generieren Sie Tabelle für die Zuordnung von IPAddress als INET-Typ in PostgreSQL?
Es gibt inet
Typ in PostgreSQL geeignet dafür, aber in meinem Fall verwendet es stattdessen bytea
Typ, wenn es Schema generiert.
Gibt es eine Möglichkeit, den resultierenden generierten Schematyp für diese Spalte zu erzwingen, der tatsächlich inet
in DB ist?
ich zufällig auch auf Composite-ID diese Anforderung haben (whicg erforderlich)
CompositeId()
.KeyProperty(x => x.Date, "for_date")
.KeyProperty(x => x.Address, var => var.ColumnName("ipaddress"));
Sie kann nicht wirklich CustomSqlType auf Schlüsseleigenschaft Teil verwenden.
Ich habe auch versucht
public class IPAddressPropertyConvention : IPropertyConvention
{
public void Apply(IPropertyInstance instance)
{
if (instance.Property.PropertyType == typeof(IPAddress))
instance.CustomSqlType("inet");
}
}
Aber ich Ausnahme über ungültige Eigenschaft Konvention
Mal sehen, ob ich die Frage mit verstehen. Sie möchten ein Datenbankschema mit 'nhibernate' erzeugen, und wenn Sie versuchen, den Code in' fluent' zu schreiben, erzeugt es eine Spalte vom Typ 'bytea'. Sie möchten lieber eine Spalte vom Typ 'inet' erzeugen. Ist das richtig? –
@Catcall ja, genau das. –