我正在尝试实现Entity Framework添加对象(如果它尚不存在)。我需要做异步函数。
这是我写的,但它不起作用(没有例外,但不起作用 - 它不会将对象插入数据库):
public async Task<Manufacturer> InsertNewManufacturer(Manufacturer manufacturer)
{
Manufacturer m = await db.Manufacturers.Where(ma => ma.Name == manufacturer.Name).FirstOrDefaultAsync();
if (m != null)
{
return m;
}
else
{
db.Manufacturers.Add(manufacturer);
await db.SaveChangesAsync().ConfigureAwait(false);
return manufacturer;
}
}
答案 0 :(得分:0)
我是这样做的 -
public async Task<Manufacturer> InsertNewManufacturer(Manufacturer manufacturer)
{
return await insert(manufacturer);
}
private async Task<Manufacturer> insert(Manufacturer m)
{
Task<int> t = Task.Factory.StartNew(() =>
{
return db.Manufacturers.Count(ma => ma.Name == m.Name);
});
Task.WaitAll(t);
if (t.Result == 0)
{
db.Manufacturers.Add(m);
await db.SaveChangesAsync();
}
return m;
}
它是否可以异步工作?