【发布时间】:2017-11-18 05:58:13
【问题描述】:
我正在通过 linq to sql 调用存储过程。
var qlist = dbc.GetInfoByIDandDate(ID, aDate); //sp call
if (qlist.Count() == 0)
{
// error msg
}
else if (qlist.Count() > 1)
{
// A different Error msg.
}
else
{
GetInfoByIDandDateResult res = (GetInfoByIDandDateResult) qlist.First();
string x = res.fieldXname; // this is a field in the result set.
... and so on.
}
我已经尝试了这个的各种化身,但总是一个错误。 此迭代的错误是“查询结果不能枚举多次。”
处理这个问题的正确方法是什么?
【问题讨论】:
-
不要多次枚举结果?
-
字符串结果 = qlist.Count == 0 ? “错误 1”:qlist.Count == 1? “错误 2” : (GetInfoByIDandDateResult) qlist.First().fieldXname;
-
您也可以使用 Single 代替 First,如果结果不完全一致,则会引发异常。这样你就不需要调用 Count。
标签: c# asp.net linq linq-to-sql