我有一个这样的模型:
public class Order
{
public virtual int OrderType { get; set; }
}
(当然省略了许多其他属性)直接映射到int
数据库中的类型。
问题是,数字订单类型对我的应用程序毫无意义。用户看到的单字母代码表示订单类型。所以,我可以做这样的事情:
public class Order
{
public virtual int OrderTypeIgnored { get; set; }
public virtual char OrderType
{
get
{
return translateForward(OrderTypeIgnored);
}
set(char val)
{
OrderTypeIgnored = translateBackward(val);
}
}
}
(那里有很多空气代码/伪代码,我对 C# 比较陌生)并且只是映射OrderTypeIgnored
属性。但是有没有更清洁的方法来做到这一点?也许以某种方式覆盖映射属性本身的getter和setter?
一些注意事项:这些值是静态的,因此将翻译嵌入代码中不是问题。不,没有 LOV 表,不,我无法控制数据库结构。
很抱歉,如果有答案,但是搜索“映射”和“翻译”之类的东西并不能真正让我得到我正在寻找的结果,显然。