После удаления всех объектов из контекста свойство навигации не работает - PullRequest
0 голосов
/ 25 ноября 2011

У меня есть объект Vulner со свойством навигации CvssVector. LazyLoad включен. CvssVector имеет столбец первичного ключа VulnerId (не идентификатор).

var vulner = new Vulner { CvssVector == cvssVector};
context.Vulners.Add(vulner);
context.SaveChanges();
savedVulnerId = vulner.Id;
var entries = context.ObjectStateManager.GetObjectStateEntries(~EntityState.Detached).ToList();
entries.ForEach(e => e.ChangeState(EntityState.Detached)); // remove all entry states

позже для того же контекста, который я прошу для сохраненного vulner

var vulner = context.Vulners.First( v => v == savedVulnerId);
var fail = vulner.Cvss == null && ctx.CvssVectors.Any(x => x.VulnerId == vulner.Id);

угадай что? Ошибка равна True! Единственный вопрос - ПОЧЕМУ ???

1 Ответ

0 голосов
/ 25 ноября 2011

С изменением состояния объекта вы меняете только если / как объект отслеживается из контекста. Но затем, запрашивая ctx.CvssVectors, вы отправляетесь в базу данных, которая по-прежнему содержит данные.

Хотите удалить данные или каков ваш сценарий?

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