Как сделать так, чтобы настройки свойств по умолчанию применялись во время вставок с использованием Fluent NHibernate - PullRequest
0 голосов
/ 19 октября 2011

У меня есть это отображение: Карта (x => x.FileAs). Длина (200). По умолчанию (""). Not.Nullable ();

Схема базы данных уже существует, и столбец не допускает пустых значений и не имеет значения по умолчанию. Изменение действующей базы данных не вариант.

Можно ли настроить NHibernate для установки значений по умолчанию во время вставки, если текущее значение равно нулю?

Документация для Fluent NHibernate очень краткая ... И мои поиски до сих пор не показали, возможно ли это или нет.

Спасибо, Аарон

Ответы [ 2 ]

2 голосов
/ 19 октября 2011

Нельзя сделать NHibernate, чтобы установить значения по умолчанию. Default("") в отображениях влияет только на схему БД, которая может быть сгенерирована NHibernate.

Если вам нужно применить какое-либо значение по умолчанию для свойства в сущностях, почему бы вам не сделать это в конструкторе?

1 голос
/ 19 октября 2011

Да, я верю, что вы можете.Вы должны проверить следующее в ваших сопоставлениях:

(7) динамическое обновление (необязательно, по умолчанию false): указывает, что SQL UPDATE должен генерироваться во время выполнения и содержать только те столбцы, значения которых имеютизменено.

(8) динамическая вставка (необязательно, по умолчанию false): указывает, что INSERT SQL должен генерироваться во время выполнения и содержать только столбцы, значения которых не равны нулю.

Выше было взято отсюда: http://www.nhforge.org/doc/nh/en/index.html#mapping-declaration-class

Свободный пример:

public class OrderMap : ClassMap<Order>
{
    public OrderMap()
    {
        DynamicInsert();
        DynamicUpdate();
        Table("ORDER");
        Id(x => x.OrderId, "ORDER_ID");
    }
}
...