LINQ to Entities удаляет исключение - PullRequest
2 голосов
/ 15 апреля 2010

У меня есть следующий код для удаления пользователя из базы данных:

var user = from u in db.Users
           where u.Username == username
           select u;

if (user.Count() > 0)
{
    db.DeleteObject(user.First());
    db.SaveChanges();
}

но у меня вот такое исключение:

at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager sta teManager, IEntityAdapter adapter)
at System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
at System.Data.Objects.ObjectContext.SaveChanges(Boolean acceptChangesDuringSave)
at System.Data.Objects.ObjectContext.SaveChanges()
at MyCompany.SystemSoftware.DQMgr.User.DeleteUser(String username) in C:\workspace\SystemSoftware\SystemSoftware\src\dqm\User.cs:line 479

На таблицу Users ссылаются несколько других таблиц. Это, вероятно, вызвано ограничением внешнего ключа?

1 Ответ

1 голос
/ 11 марта 2011

Самый простой способ решить эту проблему - установить ограничения внешнего ключа на Cascade on Drop, но, конечно, на тот случай, если вы готовы потерять записи, на которые есть ссылки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...