6
實體框架具有相同的IO綁定方法的同步和異步版本,例如SaveChanges
和SaveChangesAsync
。我如何創建新的方法來最小化完成同樣的任務而不需要「複製」代碼?如何輕鬆支持重複的異步/同步方法?
public bool SaveChanges()
{
//Common code calling synchronous methods
context.Find(...);
//Synchronous Save
return context.SaveChanges();
}
public async Task<bool> SaveChangesAsync()
{
//Common code asynchronous methods
await context.FindAsync(...);
//Asynchronous Save
return await context.SaveChangesAsync();
}
假設EF通過複製代碼來完成此操作是否安全? – Shoe 2014-09-23 14:32:07
@Shoe EF完全可以通過複製代碼來完成此操作;我不一定*認爲*它;然而,由於它很可能是代碼生成和元編程的混合,所以它可能是好的(即「完成正確」)。 – 2014-09-23 14:33:15
如果我有cpu綁定方法而不是io-bound,那麼完成此操作的正確方法是使用'Task.Run()'之類的東西嗎? – Shoe 2014-09-23 14:46:15