Member 13053943 Ответов: 2

Предотвращение двойной регистрации


Я хочу предотвратить двойную регистрацию пользователя, то есть,когда я регистрирую пользователя, система должна проверить, существует ли в базе данных его адрес электронной почты или номер телефона. какой метод я буду использовать для выполнения проверки? пожалуйста я использовал peta poco а не entity framework

Что я уже пробовал:

это действия в контроллере
public ActionResult Create()
        {
            var sexlist = new SelectList(new[] { "Male", "Female" });                        
            ViewBag.SexList = sexlist;
            return View();
        }

        
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create(Member member)
        {
            AchimotaGCDb repo = new AchimotaGCDb();
            var sexlist = new SelectList(new[] { "Male", "Female" });
            ViewBag.SexList = sexlist;

            repo.Insert(member);
            return RedirectToAction("Index");
        }


это класс

public partial class Member : AchimotaGCDb.Record<Member>  
    {



		[Column] public int MemberId { get; set; }





		[Column] public string FirstName { get; set; }





		[Column] public string LastName { get; set; }





		[Column] public string Phone { get; set; }





		[Column] public string Sex { get; set; }



        [DataType(DataType.Date)]
        [DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]           
		[Column] public DateTime? DOB { get; set; }





		[Column] public string ActivationCode { get; set; }



	}

2 Ответов

Рейтинг:
20

Afzaal Ahmad Zeeshan

Затем попробуйте проверить, существует ли этот член уже или нет, что-то вроде этого будет работать,

AchimotaGCDb repo = new AchimotaGCDb();
var sexlist = new SelectList(new[] { "Male", "Female" });
ViewBag.SexList = sexlist;
 
if(repo.First(x => x.MemberId == member.MemberId) == null) {
   // No exists
   repo.Insert(member);
} else {
   // Exists
}

Есть и другие доступные функции, такие как Contains, IndexOf и т. д., Вы также можете попробовать их, общая логика остается той же — вы ищете член с конкретными деталями, а затем, если пользователь не существует, вы добавляете его, в противном случае вы возвращаетесь; или показываете ошибку.


Рейтинг:
2

Member 13053943

спасибо за идею,это то,что я сделал, я использую peta poco для сущности базы данных

AchimotaGCDb repo = new AchimotaGCDb();
            var sexlist = new SelectList(new[] { "Male", "Female" });
            ViewBag.SexList = sexlist;

            if (repo.SingleOrDefault<Member>("SELECT * FROM Member WHERE Phone=@0",member.Phone) == null)
            {
                // No exists
                repo.Insert(member);
                return RedirectToAction("Index");

            }
            else
            {
                ViewBag.Message = "Error. Phone number already exists";
                return View(member);
            }