Yar*_*evi 2 .net c# entity-framework unique-constraint entity-framework-4
我的实体模型中有一个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();
}
}
Run Code Online (Sandbox Code Playgroud)
如果这是正确的方法,我是否有办法在context.UserSet.AddObject()调用时自动执行此代码?或者确实存在更优雅的方式?
我不知道更优雅的方式.而不是使用SingleOrDefault,我想你想要的东西:
bool isUniqueUserName = !context.UserSet.Any(u => u.Username == i_UserName);
Run Code Online (Sandbox Code Playgroud)
为了表现.Any()在第一场比赛时停止,不必枚举整个序列.
| 归档时间: |
|
| 查看次数: |
2085 次 |
| 最近记录: |