Вопрос по linq-to-sql, sql-server-2005 – Linq-to-SQL игнорирует значение по умолчанию для SQL Server

22

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

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

Дубликат:stackoverflow.com/q/201706/11683 (не голосовать за закрытие, оба одинаково полезны). GSerg

Ваш Ответ

6   ответов
1

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

11

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

enter image description here

Error: User Rate Limit Exceeded
11

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

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

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

Error: User Rate Limit Exceeded jao
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
4

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

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

Error: User Rate Limit Exceeded jao
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded jao
1

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

Value of member 'AlternativeQuoteStatus' of an object of type 'OrderDetail' changed. A member that is computed or generated by the database cannot be changed.

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

7

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

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededintrepidstudios.com/blog/2009/2/6/…Error: User Rate Limit Exceeded
Error: User Rate Limit ExceedednullError: User Rate Limit Exceeded

Похожие вопросы