我们开始转换到 BL Toolkit,但遇到了一些问题,但没有找到答案。一个这样的问题是无法正确映射 DTO 上的 MapValue 属性。
使用 T4 模板,我们生成这个(作为示例):
[MapField("counterparty_fl")]
[MapValue(true, 'y')]
[MapValue(false, 'n')]
public bool CounterpartyFlag { get; set; } // flag_yn_TY(1)
我们的数据库是 Sybase,字段对应的_fl 是一个接受 'y' 或 'n' 的 char(1)。
但是,当我查看以下链接查询生成的 SQL 时,它正在编写 [counterparty_fl] = 0。我需要的是 [counterparty_fl] = 'n'
var results = (from i in facade.InputList
where (
i.UserIdentifier == criteria.UserId &&
i.CounterpartyFlag == false &&
i.Name == criteria.Name)
select i);
有人对 MapValue 有更好的运气吗?有什么建议么?