Поиск в бд есть ли ентити с таким ключем

Хочу написать метод есть ли в бд ентити с таким ключем. Если есть перезаписать его валью, если нету создать новый с новым ключем и значением. Как это реализовать ?

public async Task Set(string Key, T defaultValue)


Ответы (2 шт):

Автор решения: AnatolyBelanov

Есть ряд вопросов к постановке задачи. Но в контексте того, что было спрошено, вот такое решение:

public void CreateOrUpdate<T>(string key, T value)
{
  var entity = DbContex.FirstOrDefault(x => x.Key == key);
  if (entity == null)
  {
    entity = DbContext.Create();
    entity.Key = key;
  }

  entity.Value = value;

  entity.Save();
}

А вопрос - зачем тут дженерик? Тут либо нужно ещё дополнительно передавать контекст бд, в котором создавать / обновлять сущность, либо оно так не взлетит

→ Ссылка
Автор решения: bubadev

Лучше сделать что то типо

int id = // айдишник
using(YourContext db = new YourContext()){
    var item = db.YourTable.Find(x => x.ID == id);
    if(item is null){
    // тут создать новый
    }
}
→ Ссылка