Как вы обрабатываете случай, когда в таблице вы получили внешний ключ, который не может быть нулевым? - PullRequest
0 голосов
/ 11 августа 2009

У меня есть случай, когда у меня есть linq2sql dbml с 2 таблицами в нем

Позвольте упростить это на:

Table1
id int not null
fkid int not null (to table2.id)

и

Table2
id int not null
v1 bit not null

в сгенерированном dbml, fkid не относится к типу nullable, и по умолчанию его значение равно 0

но в таблице 2 у меня нет идентификатора 0

когда я пытаюсь вставить новую запись, не касаясь поля fkid, я получаю ошибку вставки SQL, говорящую: 0 не существует в table2

Дело в том, что я хочу сделать мой чек полностью универсальным, чтобы я не мог просто сделать что-то вроде:

если столбец не допускает проверки на ноль, если значение равно 0, и если это так, выдается пользовательская ошибка

Я хотел бы сделать что-то вроде: если столбец равен нулю, то вывести «моя ошибка»

как бы вы это реализовали?

1 Ответ

1 голос
/ 02 ноября 2009

, так как я использую шаблон t4, я изменил строку 80 в L2ST4.ttinclude с

if (type.IsValueType && canBeNull)

до

if (type.IsValueType)

так что ВСЕГДА устанавливайте обнуляемый тип везде в сгенерированном файле

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