Linq2SQL“本地序列不能在LINQ to SQL中使用”错误
我有一段代码,它结合了内存列表和数据库中保存的一些数据.这在我的单元测试中运行得很好(使用一个使用List的模拟Linq2SqlRepository). public IRepository<OrderItem> orderItems { get; set; } private List<OrderHeld> _releasedOrders = null; private List<OrderHeld> releasedOrders { get { if (_releasedOrders == null) { _releasedOrders = new List<nOrderHeld>(); } return _releasedOrders; } } ..... public int GetReleasedCount(OrderItem orderItem) { int? total = ( from item in orderItems.All join releasedOrder in releasedOrders on item.OrderID equals releasedOrder.OrderID where item.ProductID == orderItem.ProductID select new { item.Quantity,} ).Sum(x => (int?)x.Quantity); return total.HasValue ? total.Value : 0; } 当我对数据库运行它时,我收到一个我不太懂的错误.
我究竟做错了什么? 我猜这与orderItems在数据库上并且releasedItems在内存中的事实有关. 编辑 我根据给出的答案更改了我的代码(谢谢大家) public int GetReleasedCount(OrderItem orderItem) { var releasedOrderIDs = releasedOrders.Select(x => x.OrderID); int? total = ( from item in orderItems.All where releasedOrderIDs.Contains(item.OrderID) && item.ProductID == orderItem.ProductID select new { item.Quantity,} ).Sum(x => (int?)x.Quantity); return total.HasValue ? total.Value : 0; } 解决方法
你是对的,你不能使用LINQ将表连接到List. 看看这个链接: http://flatlinerdoa.spaces.live.com/Blog/cns!17124D03A9A052B0!455.entry 他建议使用Contains()方法,但你必须使用它来查看它是否适合你的需要. (编辑:清远站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 我国网站消费排行揭晓,高档网站业务量攀升
- 镭风9200,经济型显卡的上嘉之选
- sql-server – 如何在WiX安装程序中检测SQL Server Express
- sql-server – 如何在SQL Server中附加数据库?
- sql-server – SQL Server中的大量数据和性能
- 欧洲杯火热开场 BenQ为全球球迷开启快乐之门
- sql-server – 存储过程和OPTIMIZE FOR UNKNOWN
- 基本sql:在一次查询中多次选择同一列,每次出现时都依赖于不
- sql-server – SQL Server 2008:找出表中的主键/外键?
- sql-server-2008 – 传递给SQL Server的查询已损坏