2

我必须从 SQL Server 返回几个记录集来构造 C# 对象。虽然 EF 目前不支持(可能是 beta 版本)返回这样的复杂对象,但我不得不求助于使用 ADO.NET 返回 DataSet 来检索数据,然后再将其转换为令人愉悦的 C# 表示形式,见下文。

SELECT * FROM ...
exec dbo.usp_SP1 @ProductID,@CatalogName
exec dbo.usp_SP2 @ProductID,@CatalogName    

进行更少的数据库调用总是更好,但是由于如何执行此查询,是否会对每个 DataSet 进行多个请求是最糟糕的?

4

2 回答 2

0

一次数据库往返总是优于三次(或两次)。

即使使用这组查询,您的代码也可能是干净的。您只需DataTable.Load连续调用 3 次,即可从DbDataReader.

所以是的,我推荐一个更大的查询和一个DataSet用于所有结果集的查询。

于 2012-07-06T14:02:17.087 回答
-1

您可以在dataset. ds.Tables[index].Rows.... 所以我会打一个电话,获取所有数据,然后通过调用另一个 sproc 或只是一个简单的SELECT.

于 2012-07-06T14:07:59.220 回答