在Servicestack.OrmLite中映射字段类型

act*_*ult 2 c# oracle servicestack ormlite-servicestack

假设我在DB中有一个字段,可能的值为'Y','N',NULL.我想在我的DTO中使用布尔属性('N',NULL - > false,'Y' - > true)来表示它.在查询/更新/插入期间,我可以以某种方式插入OrmLite来自行进行转换(两个方向,ofc)吗?谢谢

Mik*_*ike 5

ORMLite使用简单的POCO,因此您可以执行以下操作:

public class MyDto
{
    // Values: Y, N, and NULL
    public string SomeDbField { get; set; }

    [Ignore]
    public bool SomeDbFieldAccessor
    {
        get { return (SomeDbField != null && SomeDbField == "Y"); }
        set { SomeDbField = value ? "Y" : "N"; }
    }
}
Run Code Online (Sandbox Code Playgroud)

[Ignore]上存取场属性会告诉ORMLite该字段应该不会被保存到/从数据库中读取.