Для моей модели аутентификации я хочу убедиться, что одно и то же письмо невозможно зарегистрировать более одного раза.Я новичок как в nHibernate, так и частично в LINQ, поэтому я спрашиваю, достаточно ли это «проверки», чтобы убедиться, что это происходит.
public MembershipCreateStatus CreateUser(string email, string password)
{
if (String.IsNullOrEmpty(email)) throw new ArgumentException("Value cannot be null or empty.", "userName");
if (String.IsNullOrEmpty(password)) throw new ArgumentException("Value cannot be null or empty.", "password");
using (var session = sessionFactory.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
var members = session.CreateCriteria<Member>().List<Member>();
// determine is the email address already exists in the database
if (members.Any(i => i.Email == email))
return MembershipCreateStatus.DuplicateEmail;
// create the new member, if they are valid
var member = new Member { Email = email };
session.SaveOrUpdate(member);
transaction.Commit();
}
}
return MembershipCreateStatus.Success;
}
Есть ли более разумный способ сделать это?В прошлом у меня были проблемы с предыдущей программой (я использовал Linq to SQL на этой программе), поэтому я хотел получить совет специалиста, на этот раз.