Подтвердить что ты не робот

Создать таблицу для сопоставления IPAddress как типа INET в PostgreSQL?

Я получил сопоставление, которое отображает поле объекта IPAddress в базу данных.

В PostgreSQL есть тип inet, подходящий для этого, но в моем случае вместо него используется тип bytea, когда он генерирует схему.

Есть ли способ заставить полученный сгенерированный тип схемы для этого столбца быть inet фактически в БД?

У меня также есть это требование для составного ID (требуется)

CompositeId()
.KeyProperty(x => x.Date, "for_date")
.KeyProperty(x => x.Address, var => var.ColumnName("ipaddress"));

Вы не можете использовать CustomSqlType в ключевой части свойства.

Я также пробовал использовать

public class IPAddressPropertyConvention : IPropertyConvention
{
    public void Apply(IPropertyInstance instance)
    {
        if (instance.Property.PropertyType == typeof(IPAddress))
            instance.CustomSqlType("inet");
    }
}

Но я получаю исключение из соглашения о недействительных ресурсах

4b9b3361

Ответ 1

Map(x => x.IPAddress)
    .CustomSqlType("inet")
    .CustomType<IPAddressToInetUserType>();  // maybe needed, you should check