私はこの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 Guids の生成に問題があったことを意味します。しかし、それを 2 つのステートメントに分割すると、次のようになります。
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 が必要とする問題の 1 つでしょうか。定数ではなく、似たようなものですか? 過去に、LINQ が機能するために変数をディクショナリから単なるローカル変数に移動する必要がある状況に遭遇したことがあります。これはそれらのインスタンスの 1 つですか? または、私が望むようにこれをすべて1行で行う方法はありますか?