Как заставить BLT брать default из колонки таблицы?
От: matumba  
Дата: 17.02.11 10:37
Оценка:
Подробно: есть колонка таблицы, скажем "Status char(4) NOT NULL DEFAULT('TODO')". При вставке записи, я бы хотел, чтобы если проперть класса Status = null, то BLT не вставлял поле в INSERT (и тогда оно инициализировалось бы SQL server'ом). Если же проперть указана, то вставлял своё значение. В идеале, неплохо бы ещё доставать эту default строку селектом и засовывать в проперть.
NonUpdatable, понятно, не подходит — вставка зависит от значения класс.Status; Может, что-то решает атрибут DefaultValue?
Заранее спасибо, что уделили время!
Re: Как заставить BLT брать default из колонки таблицы?
От: matumba  
Дата: 13.05.11 08:34
Оценка:
Up! Это к вопросу о документации — по-моему, описанная задача должна встречаться во многих базах. Увы, доков по этому поводу нет.
Re: Как заставить BLT брать default из колонки таблицы?
От: ili Россия  
Дата: 13.05.11 12:27
Оценка:
Здравствуйте, matumba, Вы писали:

M>Подробно: есть колонка таблицы, скажем "Status char(4) NOT NULL DEFAULT('TODO')". При вставке записи, я бы хотел, чтобы если проперть класса Status = null, то BLT не вставлял поле в INSERT (и тогда оно инициализировалось бы SQL server'ом). Если же проперть указана, то вставлял своё значение. В идеале, неплохо бы ещё доставать эту default строку селектом и засовывать в проперть.


ед. чем могу помочь — поделиться опытом — я в случае, если у меня в таблице есть значение по умолчанию делаю для поля\свойства класса точно такое-же. для абстрактных классов для этого можно использовать аттрибут Parameter
Re[2]: Как заставить BLT брать default из колонки таблицы?
От: matumba  
Дата: 15.05.11 17:23
Оценка:
Здравствуйте, ili, Вы писали:

ili>ед. чем могу помочь — поделиться опытом — я в случае, если у меня в таблице есть значение по умолчанию делаю для поля\свойства класса точно такое-же.


ili, а можно немного пояснить кодом? Не улавливаю, что там делается "такое же". Поле помечается каким-то атрибутом? Или заполняется дефолтовым значением в конструкторе?
Re[3]: Как заставить BLT брать default из колонки таблицы?
От: ili Россия  
Дата: 17.05.11 04:40
Оценка:
Здравствуйте, matumba, Вы писали:

M>ili, а можно немного пояснить кодом? Не улавливаю, что там делается "такое же". Поле помечается каким-то атрибутом? Или заполняется дефолтовым значением в конструкторе?


в базе для некоторого поля мы имеем значение по умолчанию на поле SomeValue = 1010

в коде делаем так:

public class SomeClass
{
    public int SomeValue = 1010 //или в конструкторе для свойства
}

// для абстрактных классов можно так:

public abstract class SomeClass
{
    [Parameter(1010)]
    puplic abstract int SomeValue { get; set; }
}


таким макаром мы снимаем проблему расхождения значений по умолчанию в БД и в объектной модели, более того не получаем непоняток со стороны пользователя, когда он вроде что-то ввел в справочник, в поле значение не задавал, а после обновления из базы оно приобрело какое-то значение.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.