2009-08-11 74 views
0

我其中我有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不是类型可为空,默认情况下它的值为0

但在表2中,我没有ID 0

当我试图插入一个新的记录而不接触fkid字段,我得到一个SQL插入错误说:0不存在到表2

事情是我想使我的检查完全通用所以我不能做这样的事情:

如果列不允许空校验值是否为0,如果是这种情况引发自定义错误

我想这样做:如果列是null,则抛出“我的自定义错误”

你将如何实现它?

回答

1

,因为我使用T4模板,我改了行80 L2ST4.ttinclude从

if (type.IsValueType && canBeNull) 

if (type.IsValueType) 

所以它总是在生成的文件设置为null的类型到处

+0

我刚刚从我的问题中提出这个问题,所以如果没有更好的答案,我可以在2天内给它一个绿色检查 – Fredou 2009-11-02 12:31:01

相关问题