Почему значение по умолчанию, которое я вижу в SQL Server для полей, не отражается в LINQ - PullRequest
3 голосов
/ 25 ноября 2011

У меня по умолчанию установлены поля в SQL Server.Сейчас я использую LINQ для доступа / добавления / изменения и удаления записей в моей таблице, но мне интересно, почему мне нужно присваивать значения полям, которые у меня имеют значение по умолчанию при вставке.Рассмотрим эту строку кода.

SQL

CREATE TABLE SampTable
(
 sysid int not null primary key identity(1,1),
 values1 bigint not null default(0), --> consider my default is predefined
 values2 datetime not null default(getdate())
)

C # с использованием LINQ

SampleTable entity = new SampleTable();
entity.values1 = 1;
entity.values2 = DateTime.Now  //I do have default set on sql why do i need to do this
//Do Something

1 Ответ

0 голосов
/ 25 ноября 2011

Используемый вами преобразователь ORM (возможно, DBML) не копирует ограничение по умолчанию из базы данных. Неплохо - что произойдет, если вы измените значение по умолчанию в базе данных? У некоторого старого кода все еще может быть копия из старого по умолчанию в его ORM! Это может привести к путанице.

Я бы предложил начать писать SQL самостоятельно. SQL не так сложен, как написание или настройка ORM. Будет работать либо хранимая процедура, либо оператор insert в коде C #.

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