首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用linq从表中获取最新日期

使用linq从表中获取最新日期
EN

Stack Overflow用户
提问于 2012-12-03 07:06:59
回答 1查看 53关注 0票数 0

我有一个表格,里面有各种燃料类型的燃料价格数据。每一行都有一个id、date,并且有5列对应于不同的燃料类型。我想不出一个linq查询来确定每个燃料类型的最后一行数据的日期,其中值不是0(如果插入了一行,并且特定燃料类型没有可用的燃料价格,则为该燃料类型插入的值为零,因为单元格不可为空)。

我尝试使用LastorDefault,但这不起作用,因为有时特定类型的最后日期不在表的最后一行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-04 05:56:49

有可能为它设计一个linq (和SQL)查询。但是,使用为规范化结构设计的语言处理非规范化内容通常会变成一堆重复的嵌套语句(以及效率较低的查询计划)。您无论如何都会有重复的操作,所以我会使用一个常规的foreach来使它们尽可能简单:

代码语言:javascript
复制
var result = new FuelPriceSummary();
foreach(var price in context.FuelPriceData.OrderBy(p => p.Date).ToList())
{
    if (price.Price1 > 0)
        {result.Price1 = price.Price1; result.Date1 = price.date;}
    if (price.Price2 > 0)
        {result.Price2 = price.Price2; result.Date2 = price.date;}
    if (price.Price3 > 0)
        {result.Price3 = price.Price3; result.Date3 = price.date;}
    if (price.Price4 > 0)
        {result.Price4 = price.Price4; result.Date4 = price.date;}
    if (price.Price5 > 0)
        {result.Price5 = price.Price5; result.Date5 = price.date;}
}

如果可以的话,规范化你的数据库设计。这将使查询变得更容易。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13674960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档