- 新增 SwapPositionQueries.ActiveByTrade 静态扩展,收口 'SwapTradeId==X && !Invalid' 规则到单一真相 - 替换 SwapDealService/SwapEodPositionService/SwapTradeService 共 7 处纯重复谓词 - 仅返回 IQueryable,不调 SaveChanges,不动 FindTrade seam / 事务边界;行为保持等价
19 lines
709 B
C#
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);
|
|
}
|
|
}
|