实体框架 - 异步将结果保存到数据库

时间:2013-01-22 19:52:29

标签: c# entity-framework

我有一个每隔几秒就会调用一次的Web服务,这会做很多事情,然后执行批量插入,目前平均需要半秒才能调用SaveChanges()。我想异步保存所有更改,因为那时我可以每秒多次调用我的Web服务,只缓冲石英计时器保存的任何数据库更改,这应该会带来更好的性能。

我观察到,在执行Web服务功能后,如果未在实体数据库模型对象上调用“SaveChanges”,则将回滚任何挂起的数据库更改。

我是否可以异步保存对数据库的更改以及如何进行此操作?

1 个答案:

答案 0 :(得分:0)

原则上,您可以使用.NET中提供的任何异步方法来实现此目的。如果您可以使用.NET 4.5,那么我建议您查看async / await方法,因为它们非常易于使用。实体框架不支持框中的async / await,但您可以使用TaskCompletionSource类添加简单的包装器。