[英]Getting last transaction from a table using LINQ
我正在使用c#使用LINQ和MS SQL。 我在获取记录时遇到问题。 我有2个表,交易表所引用的是Sales Transactions Sales主键。数据就像,
我想做的是获取量为!= 0的所有记录。在此示例中,结果应仅包括Sales2和Sales3,而不包括Sales1。 由于Sales1已关闭。
我写了一个查询,
List<Sales> lstSales = (from ccs in context.Sales
join transactions in context.Transactions
on ccs.SALESID equals transactions.SALESID
where transactions .AMOUNT !=0
select ccs).ToList();
它返回我所有3条销售记录,因为针对Sales1的1行,金额!= 0。
请指导我达到期望的结果。
在此先感谢,维杰
尽管您的查询会过滤掉已关闭的交易,但结果中仍有> 0个交易,因此您仍然可以获得Sales1 ID。
尝试一下(它应该可以工作,尽管我还没有测试过);
IEnumerable<int> closedIds = context.Transactions.Where(t => t.Amount == 0).Select(t=> s.SalesId);
List<Sales> sales = context.Sales.Where(s => !closedIds.Contains(s.SalesId));
另一种方法是(假设您在上下文中具有“销售”和“交易”之间的关联);
List<Sales> sales = context.Sales.Where(s => !s.Transactions.Any(t=> t.Amount == 0));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.