Entity framework 如果entityframework core中不存在或更新,那么最好的插入方式是什么?

Entity framework 如果entityframework core中不存在或更新,那么最好的插入方式是什么?,entity-framework,entity-framework-core,Entity Framework,Entity Framework Core,模型如下: public class UserModel { public boolean Online{ get; set; } [Key] public string id { get; set; } } 以下是DBContext: public class UserDBContext:DbContext { public virtual DbSet<UserModel> UserStatus

模型如下:

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()
        {
        }
}
尽管它可以工作,但我担心在有数百万数据的情况下的性能。数据库将计算计数的所有数据,而我只需要一个

我怎样才能解决它?谢谢。

您应该改用

确定序列的任何元素是否存在或满足 条件

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();                      
}
if (UserDBContext.UserStatus.Any(X => X.id == UM.id))
{
   UserDBContext.UserStatus.Update(UM);
}