Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在.SaveChanges数据服务中使用ADO.Net ()方法的最佳方法是什么?

在.SaveChanges数据服务中使用ADO.Net ()方法的最佳方法是什么?
EN

Stack Overflow用户
提问于 2008-10-09 19:49:53
回答 2查看 4K关注 0票数 9

是否有人对.SaveChanges()方法的使用有很好的了解?

当试图在数据上下文对象上使用.SaveChanges()方法时,我遇到了各种各样的问题。我从现有数据源获取数据,创建适当的EntityFramework/DataService对象,用数据填充创建的对象,将这些对象添加到上下文中,然后通过调用.SaveChanges保存数据。

我想出的场景(以及与它们相关的问题)是这样的.在每个场景中,我都有一个foreach循环,它从DataTable中的行中获取数据并生成对象,并在对象运行时将它们附加到上下文中。(注意:三个对象,一个是“成员”,两个是通过SetLink调用附加的“地址”)-这基本上是一个转换工具,用于从一个数据存储中获取数据并将其按摩到由data公开的数据存储中。

在foreach循环结束时(即在循环之外),不使用任何参数的

  • 调用.SaveChanges()
    • OutOfMemory错误--大约是其方式的1/3 ( 90,000次保存中有30,000次)--不确定这是如何发生的,尽管每个保存项都是对数据库的一个单独的SQL调用,那么有什么东西会耗尽内存

不需要任何参数的

  • 调用.SaveChanges() --每个循环
    • 一次--这是可行的,但绝对要花费很长时间( 90,000次8小时)

database

  • Call .SaveChanges(SaveChangesOption.Batch)在foreach循环
    • 的末尾有一次相同的OutOfMemory错误,但没有任何保存到

每个循环error

  • Call .SaveChanges(SaveChangesOption.Batch)一次
    • 404

在许多(occassionally)

  • OutOfMemory之后,每10循环
  • Call .SaveChanges(SaveChangesOption.Batch)一次
    • 400坏请求错误

  • 多次随机尝试每个循环创建一次上下文,或者在循环开始时将其作为变量,或者将其作为可用的私有成员变量。good

  • 不同的结果,无法量化,没有一个真正的

在执行这样的大数据加载时,从客户端对象调用.SaveChanges()的首选方法是什么?关于.SaveChanges()是如何工作的,我有什么不了解的吗?谁能提供更多关于如何使用此功能的详细信息,以及通过数据服务保存数据的限制(如果有的话)是什么?在.SaveChanges()方法调用方面有什么最佳实践吗?关于.SaveChanges()方法调用有什么特别好的文档吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-12-11 07:09:01

我在使用EntityFramework方面没有很大的经验(只是一些随机实验),您是否尝试过每n次迭代调用.SaveChanges()?

我的意思是这样的:

代码语言:javascript
运行
AI代码解释
复制
int i = 0;
foreach (var item in collection)
{
    // do something with your data
    if ((i++ % 10) == 0)
        context.SaveChanges();
}
context.SaveChanges();

我知道这很难看,但这是我想出的第一个可行的解决办法。

票数 4
EN

Stack Overflow用户

发布于 2008-11-04 06:10:46

我也在一个小项目上使用EntityFramework,所以我对这个问题也很感兴趣。两个简单的问题:您是否尝试过在数据文本中转换数据对象的缓存?您是否试图关闭数据文本并在循环期间创建一个新的数据文本来释放内存?

问候

肯尼斯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/190066

复制
相关文章
【EventBus】事件通信框架 ( 订阅方法注册 | 检查订阅方法缓存 | 反射获取订阅类中的订阅方法 )
1. 获取订阅者类 : 通过反射获取该订阅者类中的所有订阅方法 , 凡是订阅方法 , 都带有 @MySubscribe 注解 ;
韩曙亮
2023/03/29
3.4K0
Python 中的布尔值
这是因为在输出的时候,判断 a or 'world' ,当 a 为 True 的时候,会输出 a ,同样的道理,当 b = '' 的时候,也就是 b 为 False, 这个时候会输出后面为真的内容。也就是 'world' 。
zucchiniy
2019/10/30
1.7K0
在Java中为什么不同的返回类型不算方法重载?
方法重载是指在同一个类中,定义了多个同名方法,但每个方法的参数类型或者是参数个数不同就是方法重载。 比如以下 4 个 method 方法就可以称之为方法重载,如下代码所示:
磊哥
2022/01/20
3.5K0
在Java中为什么不同的返回类型不算方法重载?
RabbitMQ在php中的使用----发布与订阅
安装教程 rabbitmq和php的amqp扩展教程网上有很多,大家可以自行查询,例如:Linux系统安装RabbitMQ及PHP安装amqp拓展库详细教程
美团骑手
2021/01/18
2K0
【EventBus】EventBus 源码解析 ( 注册订阅者 | 订阅方法 | 查找订阅方法 )
EventBus 中调用 EventBus.getDefault().register(this) 注册订阅者 ; 该方法中主要进行了如下
韩曙亮
2023/03/29
2.3K0
ios中iframe的scroll滚动事件替代方法
在公众号的开发中,遇到ios中iframe的scroll滚动事件失效,在此做下记录。 因为接口获取的数据必须放在iframe中展示,滚动到底部按钮变亮,如图: 代码如下: <!DOCTYPE html
deepcc
2018/07/05
2K0
ios中iframe的scroll滚动事件替代方法
在公众号的开发中,遇到ios中iframe的scroll滚动事件失效,在此做下记录。 因为接口获取的数据必须放在iframe中展示,滚动到底部按钮变亮,如图: 代码如下: <!DOCTYPE html
deepcc
2018/05/16
2.8K0
Java 中如何限制方法的返回时间
可以使用 JDK 中的 ExecutorService 方法来对调用的方法进行处理。
HoneyMoose
2023/02/10
3.1K0
Java 中如何限制方法的返回时间
Excel公式技巧32: 处理公式中的布尔值
在我们编写公式时,特别是编写数组公式时,往往会生成由TRUE/FALSE值组成的中间数组。有些Excel函数可以忽略这些布尔值,例如SUM函数,但是很多函数不能处理这些布尔值,如果将它们传递给这些函数,就会导致错误。因此,在将这些布尔值传递给函数继续处理时,需要将它们转换成数字。
fanjy
2020/05/14
2.8K0
在日历中订阅腾讯待办,了解一下?
在我们的待办清单里,可能会记录着这样的日程: 对于这些有deadline的待办事项,如果想要更加直观和清晰地在日历应用上查看和管理,应该如何实现? 这时,你只需要一个URL,就可以在其他日历应用中轻松订阅腾讯待办。即便是脱离了待办小程序,也能在日历中看到设置了日期的未完成待办事项。 哪些日历可以订阅腾讯待办? 支持ics格式的URL订阅的日历:比如Outlook日历、macOS、iOS、部分安卓机型以及其他第三方日历等。 其他更多机型,如果有数据同步需求,可以到官方社区留言。 官方社区:https:
腾讯云DNSPod团队
2021/09/18
1.3K0
java中的onresume_java – 直接onResume()调用的替代方法
我的应用程序目前在onResume()内部完成大部分工作,然后发布显示,这是onResume()的结束.
全栈程序员站长
2022/09/05
9370
在vue中如何监听移动端的返回键
环境:vue.js+vant 问题:首页列表和分类页的列表用的同一个页面,页面区分用的是本地缓存,希望在分类页点击返回的时候,执行清除缓存,刷新页面 解决原理:利用history和浏览器刷新popstate状态去实现 每一次返回都会去历史记录回退 -1 所以就在进入页面之前 往历史记录里面多记录一次当前页面的链接。然后再回退的时候监听刷新,去做一些事情。 具体执行: 1、挂载完成后,判断浏览器是否支持popstate
IT工作者
2022/03/14
3.6K0
在日历中订阅腾讯待办,了解一下?
对于这些有deadline的待办事项,如果想要更加直观和清晰地在日历应用上查看和管理,应该如何实现?
腾讯待办
2021/09/29
9590
在日历中订阅腾讯待办,了解一下?
在 React 16 中从 setState 返回 null 的妙用[每日前端夜话0x7D]
在 React 16 中为了防止不必要的 DOM 更新,允许你决定是否让 .setState 更来新状态。在调用 .setState 时返回 null 将不再触发更新。
疯狂的技术宅
2019/06/11
14.7K0
【说站】splitlines在python中返回列表
2、返回一个是否包含换行符的列表,如果参数keepends为False,则不包含换行符。
很酷的站长
2022/11/23
2.5K0
Python中的布尔类型以及布尔值介绍
布尔类型是一种逻辑类型,它只有两个取值:True(真)和False(假)。在Python中,True和False是内置的布尔类型常量,用于表示真和假的状态。
小博测试成长之路
2023/09/01
9800
Python中的布尔类型以及布尔值介绍
IE中 时间对象方法getTime返回NaN
在IE中使用Date对象的getTime方法解析以下格式的日期时(2020-12-14 16:00:00)会返回NaN,原因是在IE中使用该方法时参数的格式必须为YYYY/MM//DD
peng_tianyu
2022/12/15
1.2K0
点击加载更多

相似问题

Sitecore Web Item API 404

21

Sitecore Item Web API -嵌套JSON结构?

20

Sitecore Item Web API未返回任何字段

13

Sitecore Item Web API -找不到模板项目错误

11

如何使用item web api在sitecore 6.5中创建媒体项目

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文