如果DB中存在指定Developer
的记录,我想更新DeveloperName
实体,否则我需要添加一个新项目。现在我就像在下面的代码中那样,但这是2查询方式。还有更好的方法吗?
public static async Task AddOrUpdateDevAsync(Developer newD)
{
using (var db = new RPDBContext())
{
var oldD =
await
db.Developer.AsNoTracking()
.FirstOrDefaultAsync(
x =>
string.Equals(x.DeveloperName, newD.DeveloperName,
StringComparison.OrdinalIgnoreCase));
if (oldD != null)
{
Mapper.Map(newD, oldD);
db.Developer.Update(oldD);
}
else
{
db.Developer.Add(newD);
}
await db.SaveChangesAsync();
}
}