根据另一个查询结果的结果过滤linq查询
我想过滤一个linq查询
我有2个linq语句
第一个获取我想要的所有商店,第二个是我根据第一个查询中找到的结果过滤信息的地方。
var stores = ctx.Stores.Where(ps => ps.ParentStoreID == parent.ParentStoreID && ps.StoreID!=storeID); var query = (from a in ctx.TransactionTable from b in ctx.MappingTable.Where(x => x.TransactionId== a.TransactionId).DefaultIfEmpty() where a.StoreID!=storeID select new { Transactions = a, Mapping = b }).ToList();
如何在第二个查询中添加另一个where子句,只返回存储结果中包含a.StoreId的结果?
像这样:
var stores = ctx.Stores.Where(ps => ps.ParentStoreID == parent.ParentStoreID && ps.StoreID!=storeID); var query = (from a in ctx.TransactionTable from b in ctx.MappingTable.Where(x => x.TransactionId==a.TransactionId).DefaultIfEmpty() where a.StoreID!=storeID && stores.Select(s => s.StoreID).Contains(a.StoreID) select new { Transactions = a, Mapping = b }).ToList();
您可以在此处找到更多信息: Linq to Entities – SQL“IN”子句