У меня есть сущность User в моей модели сущности:
Имя пользователя и адрес электронной почты должны быть уникальными, но пока EF4 не поддерживает это.
Итак, я написал этот код для обеспечения уникальности:
public void CreateNewUser(string i_UserName, string i_Email)
{
using (ModelContainer context = new ModelContainer())
{
User usr;
usr = context.UserSet.Where(u => u.Username == i_UserName).SingleOrDefault();
if (usr != null)
throw new Exception("Username not unique");
usr = context.UserSet.Where(u => u.Email == i_Email).SingleOrDefault();
if (usr != null)
throw new Exception("Email not unique");
context.UserSet.AddObject(new User() { Username = i_UserName, Email = i_Email });
context.SaveChanges();
}
}
Если это правильный подход, могу ли я автоматически преформировать этот код всякий раз, когда вызывается context.UserSet.AddObject()
? Или существует более элегантный способ?