将 DataRow 转换为域 class 对象

Convert a DataRow to a Domain class object

我有一个来自 dealers DataTableDataRow 对象,它有列 d_id、d_name、d_contactInfo 和具有属性 [=16] 的域 class 对象 Dealer =]id, name, contactInfo.我正在寻找一种方法,通过使用

之类的转换将此 dataRow 转换为域 class 对象
DbDataSet.dealers.FindByd_id(id) as Dealer;

有什么方法可以做到这一点吗?因为如果是这样,代码看起来比必须一个一个地指定属性映射要干净得多。谢谢

您有几个选项可以解决这个问题。一种是创建您自己的数据层对象,将 DataRow 中的字段映射到一个对象。如果你想要这种更自动的方式,你可以创建一个辅助例程,或者如果你可以将数据输出为 XML 或 JSON,你可以使用序列化来匹配项目。这是实现此目标的较难方法。

如果可以重构代码,可以使用Entity Framework来匹配items。我不太喜欢在企业级代码中使用它,但它与其他人一起使用效果很好。还有其他 OR/M 产品,许多是开源的,也可以做到这一点。根据您的要求选择正确的(有些更快,有些功能更多等)

还有一些产品可以从一种形状映射到另一种形状,可以节省您一些时间,如评论中所述。