【发布时间】:2014-03-31 09:18:16
【问题描述】:
我想在同步函数中使用 saveChangesAsync。比如我想用这个的情况。
public string getName(int id)
{
var db = new dbContext();
String name= db.names.find(id);
db.log.add(new Log("accessed name");
db.savechangesAsync();
return name;
}
所以基本上我不关心日志何时实际保存到数据库,我只是不希望它减慢我的 getName 函数。我希望 getname 返回,然后可以在此之后/期间随时将日志保存到数据库中。
我将如何实现这一目标?没有什么取决于提交日志的时间,所以我只关心它可能需要 2 分钟。
我想出了另一个解决方案:
private async void UpdateLastComms(string _id)
{
int id = Int32.Parse(_id);
using (var db = new dbContext())
{
db.Devices.Where(x => x.UserId == id).FirstOrDefault().LastComms = DateTime.Now;
await db.SaveChangesAsync();
}
}
然后我可以像这样调用这个函数UpdateLastComms("5");
this 与第一个相比如何?它会按照我的想法执行吗?
【问题讨论】:
标签: c# entity-framework asynchronous task-parallel-library dbcontext