2016-05-06 4 views
-3

ОБНОВЛЕНОИспользуя один и тот же объект для запуска нескольких LINQs

Я пытался запустить несколько LINQ с выкл одного объекта.

TestObject myObject = entities.TestObject.FirstOrDefault(t => t.number == foo.number && t.deleted == "N") 

myObject = entities.TestObject.FirstOrDefault(t => t.number == foo.number && t.deleted == "N") 

myObject = entities.TestObject.FirstOrDefault(t => t.number == fooTest.number && t.deleted == "N") 

myObject = entities.TestObject.FirstOrDefault(t => (t.number == fooTestTwo.number || t.anotherNumber == fooTestTwo.number) && t.deleted == "N") 

Теперь, если я использую myObject для нескольких LINQ S, кажется, что после третьего LINQ его не запрашивая должным образом, если я не поставил его обратно в null.

myObject = null; 

В четвертом LINQ оператор ИЛИ не работает правильно, и только пожары на первом состоянии.

Должен ли я создавать несколько объектов для разных запросов или возвращать объект обратно к null - лучший способ справиться с этим?

+1

Какое сообщение об ошибке? Делая какой процесс вы пришли с этой проблемой? Добавьте более подробную информацию. – CodeNotFound

+2

Можете ли вы показать код, который на самом деле демонстрирует проблему? В настоящее время у вас есть одна строка кода, которую вы утверждаете, работает. Затем вы ссылаетесь на некоторые проблемы в каком-то другом коде, который вы не показываете. Мы не можем с этим справиться. Если вы просто спрашиваете, можете ли вы присвоить значение переменной, тогда да, да, вы должны это сделать. – David

ответ

1

Если вы устанавливаете myObject с принципиально различными выражениями Linq, то то, что myObject представляет, будет меняться, и это может запутать/привести к ошибкам. Вы должны создать новые объекты для каждого из ваших выражений linq и называть их так, чтобы их имя отображало то, что они, например. myMostRecentObject, myMostExpensiveObject и т. д.

Смежные вопросы