Как я удостоверяюсь, что Linq к Sql не переопределяет или нарушает не допускающие NULL-значения значения по умолчанию DB?

Как вы можете проверить исходный файл intobject.c , Python кэширует мелкие целые числа для эффективности. Каждый раз, когда вы создаете ссылку на небольшое целое число, вы ссылаетесь на кэшированное маленькое целое число, а не на новый объект. 257 не является маленьким целым числом, поэтому он вычисляется как другой объект.

Для этого лучше использовать ==.

14
задан 8 revs, 3 users 65% 17 November 2008 в 13:54
поделиться

4 ответа

Сгенерированные классы Linq-To-Sql не берут Значение по умолчанию Constriants.

, Возможно, в будущем, но проблеме ограничения, не всегда простые значения, они могут также быть скалярными функциями как GetDate(), таким образом, linq должен был бы так или иначе знать, как перевести их. Короче говоря, это даже не пробует. Это - также очень определенный тип базы данных вещи.

  • Вы могли записать генератор кода для создания объекта частичные классы, где можно извлечь значение по умолчанию constriant.
  • , Кроме того, Ваш бизнес-код слоя мог установить значения по умолчанию в конструкторах из XML-файла и всего, что необходимо сделать, содержание актуальный XML-файл.
  • Вместо того, чтобы делать работу в конструкторах, Вы могли эмулировать sql и добавить значения по умолчанию путем осмотра ChangeSet прежде, чем отправить изменения в базе данных.

проблема, которую Вы имеете, описана подробно в CodeProject - Установка Значений по умолчанию для LINQ Связанные Данные

5
ответ дан 1 December 2019 в 15:13
поделиться

Я столкнулся с той же проблемой, bzlm, и пришел к тому же заключению. Нет просто никакого хорошего способа получить не допускающие NULL-значения поля с присвоенными DB значениями по умолчанию, работающими с Linq К Sql.

работа вокруг я пошел с, должен добавить SetDefaults () метод, очень похожий на тот Robert Paulson, связанный с на CodeProject, и назвать ее в конструкторе по умолчанию моего базового класса объекта таблицы. Это работает хорошо на меня, потому что 95% времени, я устанавливаю 0, пустую строку или getdate ().

3
ответ дан 1 December 2019 в 15:13
поделиться

Это означает, что то, когда я делаю, вставляет использование Linq в SQL, следующее произойдет:

  1. бит будет отправлен как 0, переопределяя значение по умолчанию.Правильно? - Корректный
  2. smalldatetime будет отправлен как неинициализированная Система. DateTime, производя ошибку в SQL-сервере, так как это не падает с SQL Server smalldatetime диапазон.Правильно? - то, Что отправляется, является DateTime. MinValue
  3. интервал IsDbGenerated не будет отправлен; DB сгенерирует значение, которое Linq к SQL затем считает назад. - , Если сгенерированный DB установлен затем, стоимость создается базой данных, если не затем Linq ожидает, что пользователь установит значение.

Ваш лучший выбор состоит в том, чтобы установить их в конструкторе объекта, или на частных полях, если Вы не используете автоматические свойства.

2
ответ дан 1 December 2019 в 15:13
поделиться

Можно создать другой файл для datacontext (частичный класс) и затем использовать InsertYOURENTITY и UpdateYOURENTITY частичные методы, чтобы осмотреть свойства и присвоить собственные значения. Назовите ExecuteDynamicInsert или ExecuteDynamicUpdate после Вашего кода, и Вы установлены.

0
ответ дан 1 December 2019 в 15:13
поделиться
Другие вопросы по тегам:

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