2009-03-19 9 views
3

次のタスクを完了する方法を教えてください。LINQを使用して挿入後にインデント列vauleを取り出す方法

// Prepare object to be saved 
// Note that MasterTable has MasterTableId as a Primary Key and it is an indentity column 

MasterTable masterTable = new MasterTable(); 
masterTable.Column1 = "Column 1 Value"; 
masterTable.Column2 = 111; 

// Instantiate DataContext 
DataContext myDataContext = new DataContext("<<ConnectionStrin>>"); 

// Save the record 
myDataContext.MasterTables.InsertOnSubmit(masterTable); 
myDataContext.SubmitChanges(); 

// ?QUESTION? 
// Now I need to retrieve the value of MasterTableId for the record just inserted above. 

種類よろしく

答えて

5

同一性値は、あなたがでSubmitChangesを呼び出した直後に挿入されたオブジェクトに割り当てられます。

だけアクセス:

masterTable.MasterTableId 
0

私はSQLにLINQは、自動的にデータベースのトランザクション内のすべての変更をラップすることを知っています。そのため、返されたIDを別の挿入に使用したい場合(私のユーザテーブルにはAddressIDがあるので、新しいAddressレコードを追加してそのIDを持つ新しいユーザレコードを追加します)、ユーザの挿入に問題があり、ロールバックしません。両方のSubmitChangesを別のトランザクションでラップする必要がありますか?

関連する問題