در متد CheckUserNameExist از ()ToList استفاده شده است. البته متد string.Equals با پارامتر InvariantCultureIgnoreCase به صورت in-memory هست و باید از ()ToList استفاده شود. (توضیحات )
اگر تعداد زیادی کاربر داشته باشیم شاید آوردن این اطلاعات به memory کار درستی نباشد. شاید کد زیر عملکرد بهتری داشته باشد:
استفاده از string.Compare با پارا متر InvariantCultureIgnoreCase بدون استفاده از ()ToList :
اگر تعداد زیادی کاربر داشته باشیم شاید آوردن این اطلاعات به memory کار درستی نباشد. شاید کد زیر عملکرد بهتری داشته باشد:
استفاده از string.Compare با پارا متر InvariantCultureIgnoreCase بدون استفاده از ()ToList :
public Task<bool> CheckUserNameExist(string userName, Guid? id) { return id == null ? _users.AnyAsync(a => string.Compare(a.UserName, userName, StringComparison.InvariantCultureIgnoreCase) == 0) : _users.AnyAsync(a => string.Compare(a.UserName, userName, StringComparison.InvariantCultureIgnoreCase) == 0 && a.Id != id.Value); }