我正在尝试根据从 Web 应用程序加载到数据表中的输入 csv 文件对 SQL 表执行插入/更新/删除操作。目前,我正在使用 DataSet 进行 CRUD 操作,但想知道使用 LINQ 优于 DataSet 是否有任何优势。我假设代码将减少并且类型更强大,但不确定是否需要切换到 LINQ。任何输入表示赞赏。
编辑
这不是批量操作,CSV 最多可能包含 200 条记录。
我正在尝试根据从 Web 应用程序加载到数据表中的输入 csv 文件对 SQL 表执行插入/更新/删除操作。目前,我正在使用 DataSet 进行 CRUD 操作,但想知道使用 LINQ 优于 DataSet 是否有任何优势。我假设代码将减少并且类型更强大,但不确定是否需要切换到 LINQ。任何输入表示赞赏。
编辑
这不是批量操作,CSV 最多可能包含 200 条记录。
我使用了非常快的LumenWorks CSV 阅读器。它有自己的 API 用于提取数据,使用 IDataReader 接口。这是取自 codeplex.com 的一个简短示例。我将它用于我所有的 CSV 项目,因为它读取 CSV 数据的速度非常快。我对它实际上有多快感到惊讶。
如果您要从这样的阅读器出发,那么您实际上是从数据阅读器 API 出发,因此,可能会更轻松地使用数据表(您可以创建与结果集匹配的 DataTable 并轻松复制匹配的数据列到列)。
LINQ 的许多更新可能会变慢,这取决于您使用的是实体框架还是其他东西,以及您使用的是什么风格。一个数据表,恕我直言,可能会更快。我在使用 LINQ 和跟踪大量对象时遇到了问题(如果您使用的是附加实体,而不是使用 POCO)。从 Lumenworks 获取 CSV 文件并将其复制到 DataTable 中,我的表现非常好。