1
我正尝试使用LINQ来查询适当的对象列表。目前我被困在一个嵌套查询的语法,我希望你能帮助我。C#LINQ子查询(在实体上)
类:
public class FooType
{
public int Id { get; set; }
public IList<Foo> Foos { get; set; }
}
public class Foo
{
public int FooTypeId { get; set; }
public string CorrelationId { get; set; }
}
public class Bar
{
public string FooCorrelationId { get; set; }
}
用法:
IList <FooType> fooTypes = new List <FooType>();
// ... add a lot of FooTypes, each enriched with some Foos
Bar bar = new Bar(){FooCorrelationId = "abcdef"};
Foo foo = fooTypes.Where(ft => ft.Foos.Where(f => f.CorrelationId == bar.FooCorrelationId)).First<Foo>();
因为外WHERE-表达与一些不提供一个布尔值返回供给该失败。正如你可能已经猜到,我打算像在LINQ如下:
foreach (FooType fooType in fooTypes)
{
Foo foo = fooType.Foos
.Where(f => f.CorrelationId == bar.FooCorrelationId)
.First();
}
你有任何想法如何获取美孚我在寻找,一个用的correlationID“ABCDEF”?
对于基准测试者还有一个问题:表现如何? LINQ是否优化了查询?或者,结果就像我在“类似”块中那样对对象进行迭代一样?
非常感谢!
非常感谢,这正是我一直在寻找的!我将不得不稍稍暂停,以提高我的技能=) – 2010-10-04 09:04:34