LINQ to SQl обновляет поле первичного ключа? - PullRequest
0 голосов
/ 05 апреля 2010

У меня есть таблица / класс linq to sql, которая использует GUID как первичный ключ, так и внешний ключ. Эта проблема возникла при факторинге некоторого кода, который ранее работал.

Создано исключение

«Операция недопустима из-за текущего состояния объекта.»

Процесс, который я использую, таков:

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 ().

Ответы [ 2 ]

1 голос
/ 06 апреля 2010

Пока ваша модель правильно определяет отношение внешнего ключа между пользователем и дочерней таблицей, вам не нужно вручную устанавливать первичный ключ для дочерней таблицы. Я объясняю причину, по которой в принятом ответе на этот вопрос .

0 голосов
/ 06 апреля 2010

Он показывает, как это сделать, используя новую сущность:

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

...