-2

我想评估查询的结果并根据结果进行切换。如果“chk”查询从 t.c_pointsTotal 列返回为“0”,则使用 query1。我想我遇到了数据类型问题(评估为字符串,因为我只知道该怎么做)???在 db c_pointsTotal 中是一个浮点数。我该如何做到这一点?因为它是下面的代码没有正确评估。

ps 如果有人愿意,请告诉我何时或为什么使用 Linq 与 SQL(与 DataReader)相对,以获得相同的效果。

String zero = "0";
var chk = (from t in db.t_BannerUsers
           where t.c_call_id.ToString().ToLower().Equals(c_call_id.ToLower())     
           &&  t.c_user_id.ToString().ToLower().Equals(c_user_id.ToLower())
           select ((t.c_pointsTotal))).ToString();

if (String.Equals(chk, zero))
{
    return(query1.....)
}
else
{
    return (query2....)
}
4

2 回答 2

1

首先,您必须确保查询只返回一个结果。

关于数据类型,您可以更改:

String zero = "0";

对此:

decimal zero=0;
于 2012-04-13T16:27:26.893 回答
0

chk是一系列项目。 zero是单个字符串。如果chk只返回 1 个项目,您可以使用 LINQFirst方法获取该项目,或者FirstOrDefault它可能为空。如果它可以返回多个,您需要决定您希望它的行为方式。如果它只看第一个,检查所有这些,等等。

编辑:实际上你调用ToString了查询,所以你只会得到"IEnumerable<string>" in the query; you should remove that ToString.

于 2012-04-13T16:26:38.230 回答