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

Linq-to-SQL игнорирует значение по умолчанию SQL Server

При использовании Linq-to-SQL, добавляя столбец в существующую таблицу и устанавливая значение по умолчанию для этого нового столбца, кажется, что Linq to SQL игнорирует значение по умолчанию. Кто-нибудь еще испытал это поведение? Есть ли способ исправить это, чтобы Linq-to-SQL или SQL Server автоматически устанавливали значение по умолчанию?

В столбце, который я добавил, был тип Бит со значением по умолчанию, равным 1.

4b9b3361

Ответ 1

Теперь я окончательно зафиксировал это, используя пример из этого блога.

partial void OnCreated() {
    if (this.DateTimeCreated == null) {
           this.DateTimeCreated = DateTime.Now;
    }
}

Мне нужно передать это в частичный класс datacontext, поскольку по умолчанию он автоматически перезаписывается каждый раз, когда вы что-то изменяете в dbml.

Ответ 2

Установите свойство Auto Generated в значение True.

enter image description here

Ответ 3

Перейдите в конструктор и выберите значение "Автосинхронизация" "OnInsert". Это приведет к синхронизации значения, когда запись будет вставлена ​​в базу данных.

Ответ 4

Я это видел. Что вы можете сделать, так это зайти в конструктор l2sql, просмотреть свойства для столбца таблицы, значение по умолчанию. Существует свойство "Автогенерированное значение", установите для него значение true.

Это же значение автоматически устанавливается в true для столбца идентификации, так как в этом случае SQL Server генерирует ваши идентификаторы строк.

Ответ 5

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

Ответ 6

Если вам когда-либо понадобится изменить значение в своем собственном коде (например, значение таблицы типов со значением по умолчанию), тогда не используйте "Auto Generated Value", или вы получите это позже, когда попробуете его обновить.

Значение элемента "AlternativeQuoteStatus" объекта типа "OrderDetail" изменен. Элемент, который вычисляется или генерируется база данных не может быть изменена.

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