Linq 例外:尝试使用Enumerable时。移动服务查询的任何方法
我使用Xamarin表单构建了一个移动应用程序 所以, 我有两张桌子Linq 例外:尝试使用Enumerable时。移动服务查询的任何方法,linq,xamarin.forms,azure-mobile-services,query-expressions,notsupportedexception,Linq,Xamarin.forms,Azure Mobile Services,Query Expressions,Notsupportedexception,我使用Xamarin表单构建了一个移动应用程序 所以, 我有两张桌子 采购订单 采购订单明细 public IMobileServiceSyncTable<PurchaseOrders> PurchaseOrdersTable; public IMobileServiceSyncTable<PurchaseOrderDetails> PurchaseOrderDetailsTable; 当我试图根据采购订单列表中的Id获取采购订单详细信息时 await Purchas
- 采购订单
- 采购订单明细
当我试图根据采购订单列表中的Id获取采购订单详细信息时public IMobileServiceSyncTable<PurchaseOrders> PurchaseOrdersTable; public IMobileServiceSyncTable<PurchaseOrderDetails> PurchaseOrderDetailsTable;
我得到下面的例外 “Where”移动服务查询表达式中不支持“value(System.Collections.Generic.List`1[ProjectName.Models.PurchaseOrder])。Any(po=>(po.Id==pod.PoId))”await PurchaseOrderDetailsTable.PullAsync(queryName, PurchaseOrderDetailsTable.CreateQuery().Where(pod => purchaseOrders.Any(po => po.Id == pod.PoId)));
我可以得到关于上述错误的解释以及如何解决它吗?如果您的移动数据由表服务支持,则Any不是受支持的LINQ运营商(请参阅:),因此这可能是异常的来源 由于
不包含PurchaseOrder
的集合,我可以想到的一个解决方法是迭代PurchaseOrderDetail
并从purchaseOrders
中进行选择purchaseOrderDetails
var poDetails = new List<PurchaseOrderDetail>(); foreach (var po in purchaseOrders) { var poDetail = await PurchaseOrderDetails.PullAsync(queryName, PurchaseOrderDetailsTable.CreateQuery().Where(pod => po.Id == pod.PoId); poDetails.Add(poDetail); }
如何定义var podetals=newlist(); foreach(采购订单中的var po) { var poDetail=wait PurchaseOrderDetails.PullAsync(queryName,PurchaseOrderDetailsTable.CreateQuery()。其中(pod=>po.Id==pod.PoId); 添加(poDetail); }
和PurchaseOrder
之间的关系?@RyanHill MSFT感谢您的回复,我正在处理一个旧项目,它不包含PurchaseOrderDetail
和PurchaseOrders
之间的关系。谢谢您的回答,我也用同样的方法解决了这个问题YPurchaseOrderDetails
var poDetails = new List<PurchaseOrderDetail>(); foreach (var po in purchaseOrders) { var poDetail = await PurchaseOrderDetails.PullAsync(queryName, PurchaseOrderDetailsTable.CreateQuery().Where(pod => po.Id == pod.PoId); poDetails.Add(poDetail); }