Вот модель:
public class UserModel
{
public boolean Online{ get; set; }
[Key]
public string id { get; set; }
}
А вот DBContext:
public class UserDBContext:DbContext
{
public virtual DbSet<UserModel> UserStatus { get; set; }
public UserDBContext(DbContextOptions options) : base(options)
{
}
protected UserDBContext()
{
}
}
При наличии онлайн-статуса пользователя необходимо выполнить запись в базу данных.
Если id
не существует в базе данных, вставьте его.
Если в базе данных существует id
, обновите его.
Теперь я делаю это так:
public async Task SetUserStatus(UserModel UM)
{
if (UserDBContext.UserStatus.Where(X => X.id == UM.id).Count() != 0)
{
UserDBContext.UserStatus.Update(UM);
}
else
{
UserDBContext.UserStatus.Add(UM);
}
UserDBContext.SaveChanges();
}
Несмотря на то, что это работает, я беспокоюсь о производительности, пока есть миллион данных. База данных рассчитает все данные для подсчета, пока мне просто нужно.
Как я могу решить это? Спасибо.