2009-08-11 13 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

相關問題