gpt4 book ai didi

c# - 使用 Linq to SQL 是否可以检索两个值并将它们相减?

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:57 24 4
gpt4 key购买 nike

我正在使用 Linq to SQL 填充一个类。

我想做的是查询我的数据库,返回两个整数值并将这两个值相减,产生结果,但我想不出一个聪明的方法来做这件事。

在这种情况下我能做什么?

如果不清楚,那么这个伪代码实现应该阐明我想要的功能:

DECLARE @currentVal INT, @previousVal INT
@currentVal = SELECT VALUE
FROM Table1
WHERE Date = CURRDATE()

@previousVal = SELECT VALUE
FROM Table1
WHERE Date = MIN(Date)

RETURN @currentVal - @previousVal

但是在 Linq to SQL 中,(from o in context.Table1 where Date = currentDate select Value),如何从中减去其他值?这可能吗?

最佳答案

我坚持将其作为一组分解的查询,因为您可以随后测试这些值是否实际返回,并处理返回太多值的情况:

var currentValResults = (from row in rows 
where row.Date == DateTime.Now
select row.Value)
.ToArray();

var previousValResults = (from row in rows
let minDate = rows.Min(r => r.Date)
where row.Date == minDate
select row.Value)
.ToArray();

if (currentValResults.Length == 1 && previousValResults.Length == 1)
{
var diff = currentValResults[0] - previousValResults[0];
}
else
{
// Error condition?
}

将其全部放入一个巨大的 linq 语句中会做出太多假设(或者至少,我的实现确实如此)。

关于c# - 使用 Linq to SQL 是否可以检索两个值并将它们相减?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11052477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com