Как вы можете проверить исходный файл intobject.c , Python кэширует мелкие целые числа для эффективности. Каждый раз, когда вы создаете ссылку на небольшое целое число, вы ссылаетесь на кэшированное маленькое целое число, а не на новый объект. 257 не является маленьким целым числом, поэтому он вычисляется как другой объект.
Для этого лучше использовать ==
.
Сгенерированные классы Linq-To-Sql не берут Значение по умолчанию Constriants.
, Возможно, в будущем, но проблеме ограничения, не всегда простые значения, они могут также быть скалярными функциями как GetDate()
, таким образом, linq должен был бы так или иначе знать, как перевести их. Короче говоря, это даже не пробует. Это - также очень определенный тип базы данных вещи.
проблема, которую Вы имеете, описана подробно в CodeProject - Установка Значений по умолчанию для LINQ Связанные Данные
Я столкнулся с той же проблемой, bzlm, и пришел к тому же заключению. Нет просто никакого хорошего способа получить не допускающие NULL-значения поля с присвоенными DB значениями по умолчанию, работающими с Linq К Sql.
работа вокруг я пошел с, должен добавить SetDefaults () метод, очень похожий на тот Robert Paulson, связанный с на CodeProject, и назвать ее в конструкторе по умолчанию моего базового класса объекта таблицы. Это работает хорошо на меня, потому что 95% времени, я устанавливаю 0, пустую строку или getdate ().
Это означает, что то, когда я делаю, вставляет использование Linq в SQL, следующее произойдет:
- бит будет отправлен как 0, переопределяя значение по умолчанию.Правильно? - Корректный
- smalldatetime будет отправлен как неинициализированная Система. DateTime, производя ошибку в SQL-сервере, так как это не падает с SQL Server smalldatetime диапазон.Правильно? - то, Что отправляется, является DateTime. MinValue
- интервал IsDbGenerated не будет отправлен; DB сгенерирует значение, которое Linq к SQL затем считает назад. - , Если сгенерированный DB установлен затем, стоимость создается базой данных, если не затем Linq ожидает, что пользователь установит значение.
Ваш лучший выбор состоит в том, чтобы установить их в конструкторе объекта, или на частных полях, если Вы не используете автоматические свойства.
Можно создать другой файл для datacontext (частичный класс) и затем использовать InsertYOURENTITY и UpdateYOURENTITY частичные методы, чтобы осмотреть свойства и присвоить собственные значения. Назовите ExecuteDynamicInsert или ExecuteDynamicUpdate после Вашего кода, и Вы установлены.