我有一个案例,我有一个带有2个表的linq2sql dbml
通过以下方式简化:
Table1
id int not null
fkid int not null (to table2.id)
和
Table2
id int not null
v1 bit not null
在生成的dbml中,fkid不是可以为null的类型,默认情况下它的值为0
但是在table2中,我没有id 0
当我试图在不触及fkid字段的情况下插入新记录时,我收到一条SQL插入错误:0表示不存在于table2中
我想做的事情是让我的支票完全通用,所以我不能只做以下的事情:
如果列不允许空值,则检查值是否为0,如果是这种情况则抛出自定义错误
我想做类似的事情:如果column为null,则抛出“我的自定义错误”
你将如何实现?
答案 0 :(得分:1)
因为我正在使用t4模板,所以我在
中更改了L2ST4.ttinclude中的第80行if (type.IsValueType && canBeNull)
到
if (type.IsValueType)
所以它总是在生成的文件
中的任何地方设置可空类型