gpt4 book ai didi

entity-framework - 异步 ObjectContext.SaveChanges()?

转载 作者:行者123 更新时间:2023-12-04 07:23:40 27 4
gpt4 key购买 nike

我希望 ObjectContext(Win 应用程序)的 SaveChanges 异步保存更改,将显示一个字幕(或可控?)进度条(我可以轻松实现) 为用户提供,同时他能够继续工作。

我基本上想覆盖 ObjectContextSaveChanges

有没有人想过这个?

最佳答案

Entity Framework 本身目前不支持异步操作。主要是因为它建立在 ADO.NET 之上,而 ADO.NET 也不支持。默认情况下,ADO.NET 甚至不是线程安全的。

您可以使用上面的委托(delegate)方法或将其包装到 Task 中。但是即使提供者支持它也不会使用任何异步调用。此外,在此“后台”操作期间,您不应对 ObjectContext 执行任何操作(查询、添加对象等),因为这可能会导致状态损坏。

与多线程相关你可以阅读this邮政。它更老了,但想法仍然有效。

编辑 2013-04-17:

EF6(下一个版本,在撰写本文时目前处于 alpha 阶段)将支持异步操作,即您请求的 SaveChangesAsync。它还扩展了 ADO.NET 模型,因此如果提供程序本身支持异步执行,它将真正异步(否则回到以前的行为,因为没有更好(明智)的事情要做)。

关于entity-framework - 异步 ObjectContext.SaveChanges()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1171677/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com