使用相同的对象来运行多个LINQ

时间:2016-05-06 12:56:28

标签: c# linq

已更新

我一直试图从一个对象上运行多个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,那么在第三个LINQ之后它似乎没有正确查询,除非我将其设置回null

myObject = null; 

在第四个LINQ中,OR语句不能正常工作,只在第一个条件下触发。

我应该为不同的查询创建多个对象,还是将对象设置为null,以便更好地处理这个问题?

1 个答案:

答案 0 :(得分:1)

如果您使用根本不同的Linq表达式设置myObject,那么myObject表示的东西将不断变化,这可能会导致混乱/导致错误。您应该为每个linq表达式创建一个新对象,并为它们命名,以便它们的名称代表它们是什么,例如myMostRecentObject,myMostExpensiveObject等...