【问题标题】:Persist one record at a time compared to the whole list at once与整个列表相比,一次保留一条记录
【发布时间】:2013-02-13 09:39:37
【问题描述】:

我必须在两种方法之间进行选择。

使用MyList.Foreach(p => DoIt(p));将我的列表保存在数据库中

-或-

使用类似DoIt(MyList);的东西

DoIt 是我单独层中的 DAL 方法。

它们的用例是什么?

我对这两个场景之间的资源使用和性能感兴趣。每次调用该方法时,我的 Dal 都会使用 using 创建连接对象。

【问题讨论】:

  • “创建的连接越少 = 越好”似乎是一般的经验法则。
  • 当然,但是 .NET 内部有连接池,我认为这可能是一种更好的方法,可以针对整个列表使用 linq 一对一...
  • 如果将创建单个连接与创建 MyList.Count 连接数进行比较,以绝对数量计算,连接池是无关紧要的。
  • 是的,这对我来说是一个愚蠢的答案。让我回复你:-P
  • 谢谢,如果你愿意,你可以把它写成一个答案来标记它。

标签: c# linq list generics


【解决方案1】:

即使您的连接保留在连接池中,您最好一次性创建和使用连接(以及在using 块中),因为循环和重新调用连接的每个元素收藏无疑会花费更多。

虽然我目前不知道内部工作原理,但如果您将List 作为一个整体进行处理,则将跳过对池进行内部检查以查看连接是否仍然被调用。

【讨论】:

    猜你喜欢
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多