2011-01-17 16 views
0

こんにちは私は "id"フィールドと "parentid"フィールドを持つテーブルがあります。どちらのフィールドも必要です。したがって、親の列にnullを挿入して階層の「ルート」としてマークすることはできません。私はlinqの問題を抱えています。私は新しいルートを作成するときに、新しいルートのIDを知るまでダミーの親ディレクトリに入れなければなりません。そして、正しいIDで親フィールドを更新して保存する必要があります。再び。これはばかげているようですが、私はまだこれを達成するためのよりよい方法を見つけていませんか?自己参照テーブルLINQ

TableWithHeirachy xobj = new TableWithHeirachy(); 
xobj.property1 = "test"; 
db.TableWithHeirachy.InsertOnSubmit(xobj); 
db.SubmitChanges(); 
xobj.parentid = xobj.id; 
db.SubmitChanges(); 

これは本当に悪いようです。より良い方法があると教えてください!

答えて

1

SQL文は、挿入が完了するまで、挿入しようとしている行の将来のIDを認識しません。

それでは、今のように続行するか、ルートレコード(null、-1など)を示す特別な値を使用してください。