异步和Entity Framework

11
我刚刚阅读了关于使用新的ASYNC和AWAIT关键字进行异步编程的c#和VB.Net的即将到来的更改。有人听说过这是否可以用于通过EF进行异步db调用吗?
谢谢。
1个回答

7
我们正在评估未来向EF添加异步功能的可能性,使用新的基于任务的模式。现在说是否以及何时会发生这种情况还为时过早,但我们非常感谢您提供有关您希望能够利用此功能的情况的任何信息。
更新:EF6已经添加了异步支持。

谢谢divega-从源头听到这个消息很好。我们的异步需求非常基本,我们只是想要更好的UI响应能力。我们正在为我省(加拿大)的司法部门开发一个大型(对我们来说)的案件管理系统。该系统采用WPF/MVVM/EF/SQL Server构建。我们的许多UI包含从数据库中的多个表(以及其他系统)提取的信息摘要,并且我们希望在用户继续工作的同时加载那些数据“部分”的能力。现在,当数据被检索时,我们只是弹出标准的“请稍候”提示。谢谢。 - Gatmando
1
只是一个跟进的问题:使用当前的基于任务的异步 CTP 版本,我们是否可以创建异步函数,以利用 LINQ-to-Entities 与数据库进行交互?再次感谢。 - Gatmando
很抱歉回复你的追问这么晚:不好意思,CTP只包括针对当前支持使用先前异步模式的组件的基于任务的异步扩展方法。由于EF目前不支持任何模式的异步操作,因此无法在不更改产品的情况下添加基于任务的异步支持。 - divega
关于原始评论,非常感谢您为我们提供了如何使用基于任务的异步支持的上下文。我想到的一件事是,通过在后台线程中执行数据访问层,您可以获得类似的好处。您考虑过这样做吗? - divega
3
@divega,这种情况有什么最新进展吗?我希望能够异步运行,这样可以降低web服务器使用的线程数。我们将使用asp.net mvc +异步控制器,并且EF应该能够支持此功能。 - Mikael Eliasson
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接