2017-09-02 46 views
1

我有一個表,名稱爲Sell。我在該表中有CustomeCode,我需要在該字段中保存uniqe代碼。 我已經在Customecode表中生成了大量數據,當我想添加新記錄時,我從該表中讀取了一個代碼(customeCode)。如何在未找到任何代碼時生成代碼

我在CustyomeTable中有這些字段:Id, Code,IsUsed 有時沒有代碼和我的應用程序拋出異常。

我該如何處理?

我的代碼是這樣的:

var result =_db.CusomeCode.firstOrDefault(row=>row.isUsed!=true); 
if(result!=null) return result.Code; 
if(result==null) throw new exception(); 
+1

從代碼中,你自己通過拋出新的異常行來拋出異常。你究竟想要什麼還不清楚。你能詳細說明嗎? –

+0

你如何閱讀變量「代碼」以及如果檢索到的結果爲空? –

+0

@rene已更新。 – FullStack

回答

0

而不是拋出一個錯誤,

if(code==null) throw new exception(); 

你可以簡單地添加新代碼表

var code = new CustomCode(); 
code.isUsed = true; 
code.Code = GenerateNewCode(); 
while(_db.CustomCode.Any(a => a.Code == code.Code)){ 
    code.Code = GenerateNewCode(); 
} 
_db.CustomCode.add(code); 
_db.SaveChanges(); 
return code.Code; 

編輯:我假設你有一個函數(GenerateNewCode())在某處產生代碼,並且CusomeCode表有ID爲自動ID場。

編輯#2:添加while循環來檢查代碼是否存在於表中。

+0

在這種情況下,我應該檢查新代碼是否是exict,因爲之前使用的是mybye – FullStack

+0

在while循環中添加以檢查該代碼。 – devzero