У меня есть база данных SQL Server с таблицей с этими полями:
- A
bitсо значением по умолчанию 1,NOT NULL. - A
smalldatetimeсо значением по умолчаниюgettime(),NOT NULL. -
intбез значения по умолчаниюIDENTITY,NOT NULL.
Когда я создаю Linq для SQL для этой таблицы, происходит следующее:
-
bitне уделяется особого внимания. -
smalldatetimeне предоставляется никакого специального лечения. -
intотмечен какIsDbGenerated.
Это означает, что когда я делаю вставки с использованием Linq to SQL, произойдет следующее:
-
bitбудет отправлен как 0, переопределив значение по умолчанию. Right? -
smalldatetimeбудет отправлен как неинициализированныйSystem.DateTime, что приведет к ошибке на SQL-сервере, поскольку оно не падает с диапазоном smalldatetime SQL Server. Right? -
IsDbGeneratedintне будет отправлен; DB будет генерировать значение, которое Linq to SQL будет читать.
Какие изменения я должен внести, чтобы этот сценарий работал?
Подводя итог: я хочу непустые поля с присвоенными DB значениями по умолчанию, но я не хочу, чтобы они IsDbGenerated, если это означает, что я не могу предоставлять значения для них при создании обновлений или вставок с использованием Linq to SQL. Я также не хочу их IsDbGenerated, если это означает, что мне нужно вручную изменить код, сгенерированный Linq на SQL.
РЕДАКТИРОВАТЬ: Ответ кажется, что это ограничение в текущем Linq to SQL.