首页 > 解决方案 > 无法创建类型的常量值 此上下文仅支持原始类型或枚举类型。:

问题描述

我有以下代码..

 var GetStock = db.tabStocks.Where(x => x.SourceDocRef == InvoiceNumber.Text);
                
                List<tabStock> tbs = new List<tabStock>();



                foreach (var Stk in GetStock)
                {
                    switch (GetStock.Any(y => y.ProductSKU == Stk.ProductSKU && y.Id != Stk.Id))
                    {

                        case true:

                            if (!(tbs.AsEnumerable().Any(x => x.Id == Stk.Id))) {

                                tbs.Add(Stk);
                            }//tbs.AddRange(GetStock2.Where(g => g.ProductSKU == Stk.ProductSKU && g.Id != Stk.Id));
                            var GetOthers = GetStock.Where(x => x.Id != Stk.Id && x.ProductSKU == Stk.ProductSKU );
                            foreach (var Gt in GetOthers) {

                                

                                    if (!(tbs.AsEnumerable().Any(x => x.Id == Gt.Id))) {

                                        tbs.Add(Gt);

                                    }
                            }   break;




                    }


                }

                //Group and Remove tbs
                Literal1.Text += tbs.AsEnumerable().Count();

                try
                {
                    var GroupIt = tbs.GroupBy(x => x.ProductSKU ).AsEnumerable()
                                       .Select(g => new tabStock
                                       {
                                           ProductName = g.FirstOrDefault().ProductName,
                                           ProductSKU = g.FirstOrDefault().ProductSKU,
                                           Qty = g.Sum(n => n.Qty).Value,
                                           OutQty = g.Sum(n => n.Qty).Value,
                                           Bal = (db.tabStocks.Any(x => x.ProductSKU == g.FirstOrDefault().ProductSKU && x.SourceDocRef != g.FirstOrDefault().SourceDocRef && x.Id < g.OrderBy(t => t.Id).FirstOrDefault().Id) ? db.tabStocks.Where(x => x.ProductSKU == g.FirstOrDefault().ProductSKU && x.SourceDocRef != g.FirstOrDefault().SourceDocRef && x.Id < g.OrderBy(t => t.Id).FirstOrDefault().Id).OrderByDescending(x => x.Id).FirstOrDefault().Bal - g.Sum(f => f.Qty).Value : (0 - g.Sum(f => f.Qty)).Value).Value,
                                           TransactionRef = g.FirstOrDefault().TransactionRef,
                                           CreatedBy = g.FirstOrDefault().CreatedBy,
                                           CreationDate = g.FirstOrDefault().CreationDate,
                                           SourceDocRef = g.FirstOrDefault().SourceDocRef,
                                           InQty = 0,
                                           transactionType = "Sale",
                                           UnitCost = g.FirstOrDefault().UnitCost.Value,
                                           Received = 0,
                                           TotalValuation = 0,
                                           








                                       });

                    foreach (var NewStk in GroupIt.AsEnumerable())
                    {
                        tabStock stk = new tabStock();

                        stk.ProductName = NewStk.ProductName;
                        stk.ProductSKU = NewStk.ProductSKU;
                        stk.Qty = NewStk.Qty;
                        stk.OutQty = NewStk.OutQty;
                        stk.Bal = NewStk.Bal;
                        stk.transactionType = NewStk.transactionType;
                        stk.TransactionRef = NewStk.TransactionRef;
                        stk.CreatedBy = NewStk.CreatedBy;
                        stk.CreationDate = NewStk.CreationDate;
                        stk.SourceDocRef = NewStk.SourceDocRef;
                        stk.InQty = NewStk.InQty;
                        stk.UnitCost = NewStk.UnitCost;
                        stk.Received = 0;
                        stk.TotalValuation = 0;

                        


                        db.tabStocks.Add(stk);

                    }

                    foreach (var OldStk in tbs.AsEnumerable())
                    {

                        db.tabStocks.Remove(OldStk);
                    }
                    db.SaveChanges();

出于某种原因,我有这个错误:无法创建类型为“类型”的常量值。此上下文仅支持原始类型或枚举类型

谁能帮我指出这可能是什么。我查看了很多其他相关的,似乎没有任何工作.. toList(),AsEnumerable()。请问我的代码哪里错了。

标签: c#asp.net

解决方案


推荐阅读