Files
zszq-trs/YLErpDAL/Modules/SwapModule/SwapPositionQueries.cs
T
hjhan f2c2f6052c refactor(swap): 提取 SwapPositionQueries.ActiveByTrade 收口有效持仓查询
- 新增 SwapPositionQueries.ActiveByTrade 静态扩展,收口 'SwapTradeId==X && !Invalid' 规则到单一真相
- 替换 SwapDealService/SwapEodPositionService/SwapTradeService 共 7 处纯重复谓词
- 仅返回 IQueryable,不调 SaveChanges,不动 FindTrade seam / 事务边界;行为保持等价
2026-08-15 12:48:44 +08:00

19 lines
709 B
C#

using System.Linq;
using YLErp.DBModels;
namespace YLErp.Modules.SwapModule
{
/// <summary>
/// swap_position 查询收口(Query Object)。
/// 规则"有效持仓 = SwapTradeId 匹配且未作废(!Invalid)"集中于此,
/// 避免多处复制同一谓词导致语义漂移(漏写 !Invalid 即静默出 bug)。
/// 仅返回 IQueryable,不调用 SaveChanges,不破坏跟踪/Include/事务边界。
/// </summary>
public static class SwapPositionQueries
{
public static IQueryable<swap_position> ActiveByTrade(
this IQueryable<swap_position> query, int tradeId)
=> query.Where(x => x.SwapTradeId == tradeId && !x.Invalid);
}
}