Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 哪个DataContext方法会更快?_C#_Asp.net_Linq To Sql_Datacontext - Fatal编程技术网

C# 哪个DataContext方法会更快?

C# 哪个DataContext方法会更快?,c#,asp.net,linq-to-sql,datacontext,C#,Asp.net,Linq To Sql,Datacontext,我使用基本的DataContext创建对象,然后将它们提交到数据库中 我自己写了两个测试,看看哪一个是快速的,但只是想知道下面哪种方法被认为是最佳实践 代码通过循环进行迭代,并实例化要持久化到数据库的对象。是否最好: 1.)创建一个对象列表,然后在最终使用时将每个创建的对象分配给该列表 MyDataContext.InsertAllOnSubmit(ListOfObjects) 2.)使用将每个创建的对象直接分配到DataContext中 MyDataContext.InsertOnSubmi

我使用基本的DataContext创建对象,然后将它们提交到数据库中

我自己写了两个测试,看看哪一个是快速的,但只是想知道下面哪种方法被认为是最佳实践

代码通过循环进行迭代,并实例化要持久化到数据库的对象。是否最好:

1.)创建一个对象列表,然后在最终使用时将每个创建的对象分配给该列表

MyDataContext.InsertAllOnSubmit(ListOfObjects)
2.)使用将每个创建的对象直接分配到DataContext中

MyDataContext.InsertOnSubmit(Object)
希望这是有意义的,如果有人需要更多的信息让我知道


谢谢

我想对于第二个选项,您需要为每个操作重新打开连接。使用列表更干净,也是更好的选择。

我假设我们讨论的是对提交事件的性能影响-调用这些方法时,不会立即打开数据库连接

因为每个实现只在提交时更新数据库,所以它们都非常相似。 任何性能差异都是微不足道的(并且会被您为将对象放入列表或枚举列表所做的任何处理所抵消),因此选择更适合您的设计的方法

您可能会发现有关过早优化的页面很有趣-

过早优化是问题的根源 所有的邪恶——唐纳德·克努斯


这些方法都不会触及数据库。他们只会在调用Submit方法时将方法添加到要提交的列表中,因此它们的性能非常相似。我仍然认为第一个选项更好。不是因为性能,而是因为可跟踪性。