0

主キーと外部キーの両方として GUID を使用する linq to sql テーブル/クラスがあります。この問題は、以前は機能していたコードを因数分解したときに発生しました。

発生する例外は

「オブジェクトの現在の状態のため、操作は無効です。」

私が使用するプロセスは次のとおりです。

aspnet_User user() = new aspnet_User();
aspnet_user.childTable = new childTable();
.. set some properties
user.Insert() -> my custom method

... @ 私のカスタムメソッド

using (mycontext dc = new context() ) 
{
user.childTable.ID = (Guid)myNewlyCreatedGuid;
}

割り当て childTable.set_UserId() で例外が発生します。

4

2 に答える 2

1

モデルが User と子テーブル間の外部キー関係を正しく定義している限り、子テーブルの主キーを手動で設定する必要はありません。この質問に対する受け入れられた回答で理由を説明します。

于 2010-04-06T19:22:57.107 に答える
0

彼は、新しいエンティティを使用してこれを行う方法を示しています。

http://aspnetking.blogspot.com/2009/03/foreign-key-issue-for-update-in-linq.html

参照例のクリア:

http://dotnetslackers.com/Community/blogs/bmains/archive/2009/05/21/linq-to-sql-error-foreignkeyreferencealreadyhasvalueexception.aspx

于 2010-04-05T20:38:11.450 に答える