Я получаю следующее InvalidOperationException
:
Отношения между двумя объектами не могут быть определены, потому что
они прикреплены к разным объектам ObjectContext.
при попытке сделать следующий код:
newCorr.ReqCode = (from req in context.ReqCodeSet
where req.Code.Equals(requirement.Code)
select req).FirstOrDefault();
Непосредственно перед этой строкой я делаю следующее:
foreach (Requirement requirement in myInformation.Reqs)
{
MyHwReqCorr newCorr = new MyHwReqCorr();
newCorr.HwItem = Dictionaries.Instance.HwIdHwRecordDictionary[requirement.Id];
Итак, я делаю синтаксический анализ списка Information.Reqs
, создаю новый экземпляр MyHwReqCorr
, устанавливаю HwItem
для элемента, который был ранее сохранен в словаре, и затем устанавливаю ReqCode
с помощью команды LINQ to SQL, которая ищет в таблице код req, соответствующий тому, который я передаю. Любая помощь будет принята с благодарностью. Любая информация, которая вам нужна, я с радостью предоставлю.
РЕДАКТИРОВАТЬ: Прямо перед тем, как я вызову этот foreach, я могу вызвать это (как тестирование, чтобы убедиться, что я могу получить доступ к БД):
List<ReqCode> reqCodeList = (from req in context.ReqCodeSet select req).ToList();
И я никогда не получаю никаких ошибок с этим. Но когда я пытаюсь установить элемент в этом списке (используя метод расширения where, например:
newCorr.ReqCode = reqCodeList.Where(t=>t.Code == requirement.Code).FirstOrDefault();
или используя словарь, как и в случае с newCorr.HwItem, я получаю главную ошибку.
EDIT2: Я также заметил кое-что странное: когда я первоначально запускаю, с любой настройкой (мой оригинальный или переменный метод или метод, который опубликовал Рони), это работает. Но любой последующий запуск, то есть, если я перестану отлаживать и снова начну отладку, произойдет сбой с этой ошибкой. Только когда я убиваю все экземпляры Excel (который работает в фоновом режиме, генерируя журнал для последующего просмотра) и жду около 2-3 минут, он снова работает, а затем следует той же ситуации, что и раньше ... Проходя первый раз , терпя неудачу сразу же в последующие времена.
EDIT3: Это определенно не связано с Excel, так как я запретил запуск Excel, и я все еще получаю эту ошибку. Но я заметил, что если я подожду некоторое время и попробую еще раз, это сработает .... иногда.