在我的程序(编辑和插补数据的控制台应用程序)中,我赋予用户以多种不同方式提供数据字典的能力:制表符分隔的文本文件, Excel工作簿或数据库中。该字典由几个(12-15)文件/表/表格组成。我试图想出一个很好的方法来将来自各种源的数据加载到数据库中。从.NET中的文件验证数据
到目前为止,我的解决方案一直使用存储库来隔离各种数据源,并让这些存储库吐出映射到我的域模型上的DTO。我使用Builder模式来控制整个事件序列。
每个文件/片/表事件的基本上的序列是:
- 从存储库
- 验证在DTO的
- 然后
- 如果所述信息获取的DTO数据是好的,映射域实体
- 否则保留错误的运行列表。
我的问题是这样的:我试图找出其中最好的地方是验证在DTO的信息?一种可能的解决方案是在DTO上增加一个接口,就像这样
public interface IValidate
{
void Validate();
bool HasErrors { get; }
IEnumerable<string> GetErrorMessages();
}
这对DTO来说太重了吗?验证是否应该发生在别的地方?对不起,如果这有点主观。
什么是DTO? (链接是OK) – 2009-09-05 12:36:39
我认为“数据传输对象”来自马丁福勒的PoEAA;) – TheVillageIdiot 2009-09-05 12:43:41
是的,它在这里:http://martinfowler.com/eaaCatalog/dataTransferObject.html – TheVillageIdiot 2009-09-05 12:44:22