【发布时间】:2011-09-09 15:58:28
【问题描述】:
我正在使用第三方数据库,需要为我正在研究的特定市场选择一组不同的数据。每个市场的数据都是相同的,因此将其全部提取出来是多余的,而且我不想围绕它硬编码任何逻辑,因为我们正在与供应商合作解决问题,但我们需要一个能够解决的问题与供应商合作修复以及数据库当前的方式,因为在他们的修复上线之前可能需要一段时间。
我不想按任何东西分组,因为我想在最低级别获取数据,但我不想要任何冗余数据。我当前的查询看起来与此类似...
determinantData = (from x in dbContext.Datas
where x.Bar.Name.Equals(barName) &&
x.Something.Name.Equals(someName) &&
FooIds.Contains(x.Foo.Id) &&
x.Date >= startDate &&
x.Date <= endDate
select x).Distinct();
这并没有达到我的预期。我想通过三个属性选择不同的记录,比如Foo、Bar 和Something,但返回整个对象。如何使用 LINQ 做到这一点?
【问题讨论】:
-
这种“我不想按任何东西分组,因为我想在最低级别获取数据,但我不想要任何冗余数据”没有意义。选择 distinct 和 group by 做同样的事情,但如果你分组,你也可以在选择列表中拥有聚合函数。
-
我意识到这一点,我只是不知道如何以更好的方式问它.. 基本上我不想聚合不属于区别的其他数据,但我仍然想要选择该数据。
标签: c# .net linq linq-to-sql linq-to-entities