【发布时间】:2010-08-11 15:41:30
【问题描述】:
自从我开始使用 ORM 进行日常数据访问以来。我已经开始考虑我应该在多大程度上依赖于我的列的格式化函数。我所说的格式化函数是指 Oracle 的 decode()、instr() 和 initcap()。
示例
假设我正在使用 Oracle 中的格式选择此列。
(to_number(to_char(to_date('1', 'J') + (EndTime - StartTime), 'J') - 1) * 24)
+ (to_char(to_date('00', 'HH24') + (EndTime - EndTime), 'HH24'))
|| ':' ||
to_char(to_date('00', 'MI') + (EndTime - StartTime), 'MI')
as duration_time
这不是很漂亮,我知道。由于使用 ORM(我正在使用 NHibernate)格式化类似的东西可能是浪费时间。我在想我可以简单地让我 DTO 来处理这种格式。我可以在我的 C# set 属性中使用类似的东西。
public TimeSpan DurationTimeSpan
{
get
{
return EndTime.Subtract(StartTime);
}
}
所以我的问题是,我应该让我的 DTO 对象处理这种格式吗?还是一个 DTO 对象不应该对这种事情负责?就个人而言,让我 DTO 的 set 属性来进行这样的格式化似乎要干净得多。从外观上看,大多数格式可能都可以用非常简单的 C# 来实现。
【问题讨论】:
-
我的看法是:数据库存储(并检索)数据——原始数据。任何格式或演示都属于 UI(您的应用程序、您的网页、您的报表设计器 - 无论如何)但不在数据库中
标签: c# orm formatting dto