【发布时间】:2013-06-08 00:58:24
【问题描述】:
我尝试向我的数据库添加一个新值。 UserPassword 和 RePassword 必须具有相同的值,并且具有 UserName 的用户不得已存在于数据库中。
public User NewUser(int HotelID, string UserName, string UserPassword, string RePassword, string FullName, string Email, bool Active, bool MasterUser)
{
User user = new User();
user.HotelID = HotelID;
user.UserName = UserName;
user.UserPassword = UserPassword;
user.FullName = FullName;
user.Email = Email;
user.IsActiveq = Active;
user.IsMaster = MasterUser;
var cekUser = (from c in _UserRepository.All()
where c.HotelID == HotelID
select c.UserName).ToList();
if (UserPassword == RePassword)
{
foreach (string cek in cekUser)
{
var x = cek;
if (UserName != x)
{
_UserRepository.Add(user);
}
}
}
_UserRepository.CommitChanges();
return user;
}
每次我运行我的代码时,都会向数据库中添加一个新行,尽管具有所提供用户名的用户已经存在于数据库中。
为什么会这样?我的代码哪一部分错了?
【问题讨论】:
-
那个循环的目的是什么?看起来您将新用户添加到存储库的次数与拥有用户的次数一样多。
-
我尝试检查,我的值是否存在于数据库中,或者循环中不存在
-
看起来每次
UserName与x不匹配时,您都在将用户添加到您的数据库中。为什么不检查您的字符串列表中的string值呢? `bool ListContainsString = listOfStrings.Any(myString.Contains);'. -
你能给我举个例子吗?
-
检查这个线程,这是一个众所周知的用例:stackoverflow.com/questions/500925/…
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4