【发布时间】:2011-11-25 04:04:51
【问题描述】:
过去几年我一直在使用 ORM,在一个个人项目中,我很沮丧地发现自己在使用简单的 ADO.NET 时遇到了困难。
我有一个数据库,其中包含存储事务性数据和缓慢变化数据的表。要更新/插入的数据来自网络。
我正在尝试在 ADO.NET 中使用断开连接的数据适配器范例,在相对通用的 DB 类中允许许多/所有 ADO.NET 数据库实现。
我的问题是,由于数据库表的潜在大小,我不想执行 Adapter.Fill 到内存中(几乎每个参考和教程都会演示),而是使用 delta DataSet 将新/修改的数据推送回数据库。
如果我在 DataSet 上执行 DbDataAdapter.FillSchema,我会得到一个模式,并且我可以填充数据表,但是所有数据,无论我传递给我的关键字段是什么,都会在我更新时被视为新行使用 Adapter.Update 的表。
我是否使用正确的 ADO.NET 类来执行这样的批量 UPDATE / INSERT(通过“批量”,因为我不必在循环中执行它,而不是任何给定数据库可能在盖子)?
【问题讨论】: