c# - 我该如何解决 "The query results cannot be enumerated more than once"?

标签 c# visual-studio visual-studio-2008 linq linq-to-sql

如果我尝试编写以下代码:错误返回给我:查询结果不能枚举多次

  public void StartTransaction()
        {
            using (var stockMovementCtx = new StockMovementCtxDataContext())
            using (var scope = new TransactionScope())
            {

                var stockMovementItems = from s in stockMovementCtx.spStockMovementForTransaction(TicketID, ItemTypeNo, ItemID, TransactionType,
                                                                                                  FromLocation, ToLocation, Qty, PersonelNo, cuser
                                                                                                  )
                                         select s;

                ReturnCode = stockMovementItems.First().ReturnCode;
               // MessageBox.Show(stockMovementItems.First().ToString());
                ReturnMsg = stockMovementItems.First().ReturnMessage;
                TransactionType = stockMovementItems.First().TransactionType;
                TicketID = stockMovementItems.First().TicketID;

alt text

详细信息: alt text

详细信息:

alt text

最佳答案

我不熟悉这个错误。
但无论如何 - 你为什么要枚举不止一次?
只用一个枚举会更有效率。

public void StartTransaction()
        {
            using (var stockMovementCtx = new StockMovementCtxDataContext())
            using (var scope = new TransactionScope())
            {

                var stockMovementItems = from s in stockMovementCtx.spStockMovementForTransaction(TicketID, ItemTypeNo, ItemID, TransactionType,
                                                                                                  FromLocation, ToLocation, Qty, PersonelNo, cuser
                                                                                                  )
                                         select s;

                var item = stockMovementItems.FirstOrDefault()
                if (item != null)
                {
                    ReturnCode = (item.ReturnCode;
                   // MessageBox.Show((item.ToString());
                    ReturnMsg = item.ReturnMessage;
                    TransactionType = item.TransactionType;
                    TicketID = item.TicketID;

关于c# - 我该如何解决 "The query results cannot be enumerated more than once"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3138253/

相关文章:

visual-studio-2008 - Visual Studio 加载项 API 资源

c# - 文件上传 ASP.NET MVC

c# - 强制通用参数可从字符串解析的约束

c# - CA2000 : Microsoft. 可靠性 : Call System. IDisposable.Dispose 在对象 'dt' 之前,对它的所有引用都超出范围

.net - VS 2008 中的表单设计器有问题吗?

visual-studio-2008 - 解决方案中 "Rebuild Solution"编译成功的网站无法启动调试器

c# - 需要根据传递的参数加载特定的 css

visual-studio - Visual Studio > 谷歌浏览器 : open new window instead of new tab

c++ - 如何在不分配内存的情况下将一维数组转换为二维数组?

node.js - 为什么 node-gyp(和其他东西)需要 Visual Studio?