2017-09-02 9 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

コードから、あなたは 'throw new exception'行を通して例外をスローしています。まさにあなたが望むものはまだ不明です。あなたは精緻化できますか? –

+0

どのように変数 "code"を読んでいますか?取得された結果がnullの場合はどうなりますか? –

+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フィールド。

編集#2:ループ中に追加され、コードがテーブルに存在するかどうかを確認します。

+0

この場合、私は新しいコードを調べるべきです、それはex39であり、beacuse mybyeは前に使用しました – FullStack

+0

それをチェックするためにwhileループを追加しました。 – devzero

関連する問題