Linq-to-SQL игнорирует значение по умолчанию для SQL Server - PullRequest
22 голосов
/ 13 июля 2009

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

Добавленный столбец был битового типа со значением по умолчанию, равным 1.

Ответы [ 6 ]

11 голосов
/ 16 февраля 2011

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

enter image description here

11 голосов
/ 20 июля 2009

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

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

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

7 голосов
/ 18 июля 2009

Зайдите в конструктор и выберите значение «Автосинхронизация» из «OnInsert». Это синхронизирует значение при вставке записи в базу данных.

4 голосов
/ 13 июля 2009

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

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

1 голос
/ 29 октября 2014

Если вам когда-либо понадобится изменить значение в вашем собственном коде (например, значение таблицы типов со значением по умолчанию), не используйте «Автоматически генерируемое значение», иначе вы получите это позже, когда попытаетесь обновить его. 1001 *

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

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

1 голос
/ 22 ноября 2012

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

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