从 DAL 返回 DTO 与 DataTable
Posted
技术标签:
【中文标题】从 DAL 返回 DTO 与 DataTable【英文标题】:Returning a DTO vs DataTable from the DAL 【发布时间】:2011-02-07 15:48:07 【问题描述】:让 DAL 从域模型返回 DTO 类型与仅返回 DataTable 是否可以?让 DAL 函数返回 DataTables/DataSets 并让 BLL 将数据映射到业务对象不是更宽松吗?
【问题讨论】:
【参考方案1】:我认为这真的取决于个人喜好,但我喜欢尽可能避免使用 DataTables。
它们有时很方便,但它们不是强类型的事实往往会使调试、测试和仅仅理解代码变得更加困难。
【讨论】:
【参考方案2】:对于小型应用程序,在 .NET 中,最好将您的架构基于 DataSet 和 DataTables。您对 UI 和报告具有直接绑定支持,并且它可以很好地扩展,直到您遇到一些更大的域问题。查看 Fowler 的企业应用架构模式一书,尤其是表模块和表数据网关模式。
对于任何更复杂的事情,拥有良好的域模型和围绕它的适当层(ORM 映射器、远程处理和服务层等)总是值得的。对于这些模式,请查看前面提到的书,最好是 Eric Evans 的 Domain Driven Design
【讨论】:
以上是关于从 DAL 返回 DTO 与 DataTable的主要内容,如果未能解决你的问题,请参考以下文章