Как пропустить столбцы значений по умолчанию при вставке / обновлении в Linq To SQL? - PullRequest
4 голосов
/ 23 октября 2008

Как вставить / обновить столбец с помощью Linq To SQL и Linq To SQL, используя значения по умолчанию? В частности, меня интересует поле отметки времени.

Я попытался установить этот столбец только для чтения и автоматически сгенерировать, поэтому он перестал пытаться вставить DateTime.MinValue, но, похоже, он не обновляется при обновлениях.

Ответы [ 3 ]

5 голосов
/ 23 октября 2008

Вам необходимо установить IsVersion = true для столбца отметки времени. См. Ссылку для ColumnAttribute .

В конструкторе DBML для моих столбцов меток времени свойства установлены на

AutoGenerated=true
AutoSync=Always
Nullable, Primary Key, and ReadOnly = false
SQLDataType = rowversion not null
Timestamp = true
UpdateCheck = never

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

2 голосов
/ 23 октября 2008

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

Кроме того, вы можете добавить частичный метод в ваш класс DataContext. Добавьте новый файл вашего проекта:

public partial class YourDatabaseDataContext
{
    partial void InsertYourTable(YourTable instance)
    {
        instance.LastUpdateTime = DateTime.Now;

        this.ExecuteDynamicInsert(instance);
    }

    partial void UpdateYourTable(YourTable instance)
    {
        instance.LastUpdateTime = DateTime.Now;

        this.ExecuteDynamicUpdate(instance);
    }
1 голос
/ 23 октября 2008

Похоже, вы просто забыли установить Автосинхронизация на всегда для свойства.

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