![](/img/trans.png)
[英]The Result of a Query Cannot be Enumerated More than Once (C#) (Entity Framework) (Stored Procedure)
[英]enumerated more than once in linq to sql stored procedure call
我正在通過linq調用存儲過程到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.
}
我已經嘗試過各種化身,但總是會出錯。 此迭代的錯誤是“查詢結果不能被多次枚舉”。
處理此問題的正確方法是什么?
當您調用Count()和First()時,實際上每次都在枚舉。
我猜這可以解決問題:
var qlist = dbc.GetInfoByIDandDate(ID, aDate).ToList();
或者,甚至更聰明:
var qlist = dbc.GetInfoByIDandDate(ID, aDate).Take(2).ToList();
請注意,ToList()緩存結果,以便Count()和First()不會再次運行查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.