Как я могу удалить ссылку из объекта сущности на другую сущность с Entity Framework? - PullRequest
0 голосов
/ 08 марта 2012

У меня есть объект Locations с его первичным ключом, состоящим из Longitude и Latitude как double.

Из другого объекта сущности я хочу удалить ссылку на объект сущности в Locations, но каждый раз, когда я пытаюсь установить ссылку на ноль, я получаю OptimisticConcurrencyException.

using (MyModelContainer context = new MyModelContainer())
{
    Note note = context.Notes.Single(n => n.NID == NoteUpdate.NID);
    note.LocationReference.Load();
    note.LocationReference = null;
    context.saveChanges();
}

Но это не работает.То же самое с note.LocationReference.Value = null.

Как установить нулевую ссылку или ее значение по умолчанию?

Ответы [ 3 ]

0 голосов
/ 08 марта 2012

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

context.DeleteObject(note.LocationReference);

Как правило, ошибка оптимистического параллелизма означает, что значение изменилось с момента последней загрузки объекта, но, похоже, это не проблема. Но, чтобы проверить, никто не мог изменить это между выполнением кода, верно?

Наконец, вы пытались установить состояние?

context.Entry(note).State = EntityState.Added
0 голосов
/ 08 марта 2012

В своем классе заметок добавьте:

public int? LocationReferenceId {get; set;}

Чтобы удалить ссылку, выполните:

Note.LocationReferenceId = null;

А затем сохранить объект заметки обратно в БД

Я понимаю, что должен делать свое дело.

0 голосов
/ 08 марта 2012

Я полагаю, что цель состоит в том, чтобы обновить базу данных, чтобы столбец местоположения строки примечания был установлен равным нулю, чтобы отсоединение не работало.Я думаю, что замена note.LocationReference = null; на note.Location = null; в приведенном выше коде должна работать

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