![]() |
1
13
再一次,为这个问题撰写思想的行为揭示了答案。具体来说,我写的最后一句话是“一次一行”。我意识到我并不在乎它是一个数据阅读器,只要我能一行一行地枚举它。这让我想到:
当我们移到3.5并且可以开始在结果上使用其他LINQ操作符时,这会更好地工作,我喜欢它,因为它使我们开始考虑在每个层之间为返回大量结果的查询建立一个“管道”。 不利的一面是,对于持有多个结果集的读者来说,这会很尴尬,但这是非常罕见的。
更新
|
![]() |
2
7
你想要的是一个受支持的模式,你必须使用
并删除两者
|
![]() |
3
3
在这样的时候,我发现羊羔肉有很大的用处。考虑到这一点,不要让数据层给我们提供数据,而是让我们给数据层我们的数据处理方法:
然后业务层会称之为:
|
![]() |
4
2
关键是
与乔尔最初的回答类似,更为充实的是:
我有一个扩展方法:
所以我称之为:
这是完全通用的,适用于符合ADO.NET接口的任何模型。
The connection and reader objects are disposed after the collection is enumerated.
总之,填充
|
![]() |
5
0
我从来都不喜欢让数据层返回一个通用的数据对象,因为这很大程度上解决了将代码分离到它自己的层的整个问题(如果没有定义接口,如何切换数据层?). 我认为您的最佳选择是,对于类似这样的所有函数,返回您自己创建的自定义对象的列表,并且在以后的数据中,将过程/查询调用到DataReader,并迭代创建列表。 这将使一般情况下更容易处理(尽管创建自定义类的初始时间),使处理连接更容易(因为您不会返回任何与之关联的对象),而且应该更快。唯一的缺点是所有的东西都会像你提到的那样被载入内存,但是我不认为这会引起关注(如果是的话,我认为需要调整查询)。 |
![]() |
blogger13 · 视频租赁店数据库的规范化 4 月前 |
![]() |
ì¤ì¤í · 为什么LEFT INNER JOIN被弃用? 5 月前 |
![]() |
relatively_random · 确保两个表之间一致的共同参考 6 月前 |
|
Grenish Rai · Firestore错误“用户文档不存在” 9 月前 |
![]() |
Saijo-Shi · PLpgsql中的更新触发器 9 月前 |
![]() |
Dante · Django::配置不当:池不支持持久连接 10 月前 |
![]() |
YouLocalRUser · 删除重复行,保留第一行 11 月前 |