2009-05-02 15 views
2

誰も助けることができますか?私は、エンティティフレームワークを使用しているとそのはEntity Frameworkで新しいレコードのID列を取得していますか?

:-)うまく行くんだけど、そう

this._entities.AddToUsers(ユーザー)のようなエンティティクラスを使用して新しいレコードを追加しました。

AddToは自動的に作成され、ユーザーは私のテーブルです...すばらしいですが、ID列を返すにはどうすればよいですか?私は、ストアドプロシージャを使用し続けることができたとし

が、これは私が私のUserエンティティクラスを変換しなければならないことを意味 - 前に、私は、ストアドプロシージャを呼び出すのではなく、必要なものだけのような

音が、私は、ストアドプロシージャを持っていませんでしたSQLパラメータに変換します。

私はEFExtensionsを使用しています。

一度追加したら、SaveChangesなどを呼び出す必要がありますか?

おかげ

答えて

4

はい、AddToUsersは、メモリ内のエンティティのコンテキストにあなたのオブジェクトを追加する - それがまだディスクに保存されていないので、あなたの新しいアイデンティティ値は、まだ割り当てられていません。

.SaveChanges()を呼び出すだけで実際にデータベースに変更が書き込まれます。その後、そのID値(フィールドがINT IDENTITYタイプの場合)が生成されます。

マーク

+0

ありがとうございました!一度私はSaveChangesを行う私はそこに値が表示されます –

+0

どのようにコードでIDを取得しましたか。たとえば、this._entities.AddToUsers(user);を返します。 – suggy1982

+0

@ suggy1982: '.SaveChanges()'の呼び出し後、オブジェクトのID列に自動的に値が設定されます。何もする必要はありません。ID列を読み込むだけです –

関連する問題