我在DAL中返回DataTable。我有一个名为Customer的businessObject。我应该在哪里填写这个对象?应该在DAL中完成吗?还是在我的前端应用中?或者在哪里?有点融合。
答案 0 :(得分:1)
如果可能的话,您希望避免在DAL中返回DataTable
,而是返回正确填充的业务对象。有几个工具可以帮助您解决此问题,例如LINQ to SQL,Entity Framework或(我当前最喜欢的)Dapper.NET(由此站点使用)。我最喜欢Dapper,因为它很轻,适用于我经常使用的Data Repository模式。
答案 1 :(得分:0)
你可以有一个Base DAL,它返回DataTables。然后有一个Upper DAL,用于转换实体和从实体转换(这是我倾向于使用的)
你真的不应该在UI层中引用DataTables。
我之前见过的中途房屋是在实际业务对象本身的方法中进行“对象填充”,但这不允许您轻松切换DAL。
答案 2 :(得分:0)
当跨越这样的域时,每个域中的数据表示都不同,您需要一个集成层来处理两个表示之间的映射。但是,大多数ORM工具会自动为您进行映射。
但是要坚持你的例子,你可以有一层映射器来做到这一点。然后CustomerMapper
会从DataTable
映射到Customer
,从而有效地桥接两个域表示。
答案 3 :(得分:-1)
应该在BL或业务逻辑层中完成。