【发布时间】:2014-06-23 11:25:59
【问题描述】:
我有 .net 4.5 WCF 服务。我将重写服务实现以使用 EF6 访问数据库。该服务有许多客户并处理许多呼叫。我不能更改服务合同和客户。使用 SaveAsync 之类的异步 EF 操作是否有意义,最后我的服务必须返回 T 而不是 Task(因为旧客户端)。
更新
运营合约示例
[OperationContract]
public object AddEntity(object entity)
{
using(var context = new MyContext())
{
context.Add(entity)
var task = context.SaveChangesAsync()
return task.Result;
}
}
所以即使我使用异步,线程也会被 task.Result 阻塞。我不能使用等待,因为必须更改操作合同才能返回任务。如何实现这样的场景?
【问题讨论】:
标签: c# .net entity-framework wcf async-await