我有这个 linq 表达式
po_data.POItemQuantiyReceived = NDCEntity.tbl_Ext_Mobile_Receipt_Item.Where(Function(p) po_data.POItems.Select(Function(r) r.UID).ToArray().Contains(p.MobilePOItemUID)).ToArray()
当我运行它时,我得到这个错误:
LINQ to Entities does not recognize the method 'System.Guid[] ToArray[Guid](System.Collections.Generic.IEnumerable`1[System.Guid])' method, and this method cannot be translated into a store expression.
我认为它在生成我需要执行 Cntains 的数组 og Guid 时遇到了一些麻烦。但是当我把它分成两个陈述时:
Dim test As Guid() = po_data.POItems.Select(Function(r) r.UID).ToArray()
po_data.POItemQuantiyReceived = NDCEntity.tbl_Ext_Mobile_Receipt_Item.Where(Function(p) test.Contains(p.MobilePOItemUID))
它工作正常。这是 Linq 需要的问题之一。好吧,不是常数,而是类似的东西?在过去,我遇到过需要将变量从字典(例如字典)移动到局部变量以供 LINQ 工作的情况。这是其中之一吗?或者有没有办法像我想要的那样在一条线上完成这一切。