public async Task <BeatmapConfig> GetOrAddBeatmapConfigByBeatmap(Beatmap beatmap) { try { if (beatmap == null) { Logger.Debug("需确认加入自定义目录后才可继续"); return(null); } if (beatmap.IsTemporary) { return(new BeatmapConfig()); } var map = await BeatmapConfigs .AsNoTracking() .FirstOrDefaultAsync(k => k.BeatmapId == beatmap.Id); if (map != null) { return(map); } var guid = Guid.NewGuid(); BeatmapConfigs.Add(new BeatmapConfig() { Id = guid, BeatmapId = beatmap.Id, }); await SaveChangesAsync(); return(await BeatmapConfigs.FindAsync(guid)); } catch (Exception ex) { Logger.Error(ex); throw; } }