Отображение Fluent NHibernate Nullable Component, сохранение ноль - PullRequest
1 голос
/ 12 марта 2011

У меня есть Fluent NHibernate ComponentMap <>, отображающий тип Nullable <>.Мое решение компилируется, и мои сущности сохраняются в моей базе данных, однако я обнаружил, что вместо значений, которые есть в моей сущности, сохраняется ноль.

Я прошел путь примерно так:

public class PrimBaseMapping<T> : ComponentMap<PrimBase<T>>
    where T : struct, IComparable
{
    protected virtual string ColumnSqlType { get { return "VARCHAR(50)"; } }

    public PrimBaseMapping()
    {
        this.Map(x => x.NullableValue).CustomSqlType(ColumnSqlType).Nullable();
    }
}

Что распространяется на:

public class BoolPrimBaseMapping : PrimBaseMapping<bool>
{
    protected override string ColumnSqlType { get { return "BIT"; } }
}

И:

public class IntegerPrimBaseMapping : PrimBaseMapping<int>
{
    protected override string ColumnSqlType { get { return "INT"; } }
}

Интересно, и, возможно, стоит отметить, у меня также есть класс с привязкой к компонентам под названием Dimension, которыйпо сути является PrimBase DimensionType (он поддерживает Nullable Dimension Type):

public class DimensionMapping : ComponentMap<Dimension>
{
    private string ColumnSqlType { get { return "VARCHAR(5)"; } }

    public DimensionMapping()
    {
        this.Map(x => x.NullableValue).CustomSqlType(ColumnSqlType).Nullable();
    }
}

Я говорю, что это интересно, потому что мое сопоставление компонентов измерений на самом деле действительно сохраняет в моей базе данных.

Сначала я подумал, что, возможно, я делаю PrimBaseMapping слишком сложным, что я, возможно, мог бы сделать его более похожим на отображение компонента Dimension Component, но я хотел сначала изложить это для второго мнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...