我编写了一些 LINQ,在添加新用户时,我会在数据库中检查用户名是否唯一。我的代码(见下文)可以工作,但是有更好的方法吗?我目前依赖于在用户名不存在时捕获错误。
try
{
var User = (from u in _database.Users
where u.UserID == strUserName
select u).First();
if (User != null)
{
blnUnique = false;
}
}
catch
{
blnUnique = false;
}
最佳答案
您可以使用Enumerable.Any<TSource>()扩展方法:
bool isUnique = (from u in database.Users
where u.UserID == userName
select u).Any();
这是使用lambda来表达这一点的另一种方式。 :
bool isUnique = database.Users.Any(u => u.UserID == userName);
请注意 equals operator on the String class将进行区分大小写的顺序比较。如果您希望进行不区分大小写的比较,则必须使用 String.Equals方法:
bool isUnique = database.Users.Any(
u => u.UserID.Equals(userName, StringComparison.OrdinalIgnoreCase));
关于c# - LINQ 和唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5565723/