适配器模式

本文关键字:适配器模式 | 更新日期: 2023-09-27 17:52:16

我有一个问题,我必须复制数据从DataTable到另一个,两者都有不同的结构,这就是为什么我不能只是调用rowImport方法。

在我之前的帖子中,我曾问过做这项工作的优化方法是什么,有人建议我应该研究适配器模式?

IEnumerable<DataRow> query = from vendInv in 
  VendorInvoiceStagingTable.AsEnumerable()                                         
 where vendInv.Field<string>(VendInvoice.Number) ==    InvoiceHeader                                         
 select vendInv;      

  Object[] obj = new Object[10];            
 var item = query.First();           
  for (int idx = 0; idx < 10; idx++)   
     {              
      obj[idx] = item[idx];       
      }        
   VendorInvoiceTable.Rows.Add(obj);

完整的问题描述如下链接:

将数据从一个数据表复制到另一个具有不同结构的数据表的最佳方法

问题:如何使用适配器模式解决这个问题?

适配器模式

我不认为适配器模式可以在任何方面帮助您。我的猜测是,您自己并没有决定使用DataTable作为您的数据结构,但是其他一些情况,例如使用它的应用程序中的其他组件(UI?),迫使您使用它。这意味着这些组件只能与DataTable接口"对话"。适配器模式是关于消费者(客户端)和源(被适配器)之间的中间接口。中间接口称为Adapter。所以要坚持最简单的解决方案。从你的例子中,我有一种感觉,你的映射是简单的1:1行"转换",在这里引入任何核心模式没有多大意义:)

合并呢?它将"将指定的System.Data.DataTable与当前的System.Data.DataTable合并"。