LINQ 和唯一 ID
我编写了一些 LINQ,在添加新用户时,我在数据库中检查用户名是否唯一。我的代码(见下文)可以工作,但是有更好的方法吗?如果用户名不存在,我目前依赖于捕获错误。
try
{
var User = (from u in _database.Users
where u.UserID == strUserName
select u).First();
if (User != null)
{
blnUnique = false;
}
}
catch
{
blnUnique = false;
}
I have written some LINQ where I check against a database whether or not the username is unique when I am adding a new user. My code (see below) works, but is there a better way to do this? I am currently relying on trapping an error if the username does not exist.
try
{
var User = (from u in _database.Users
where u.UserID == strUserName
select u).First();
if (User != null)
{
blnUnique = false;
}
}
catch
{
blnUnique = false;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 Enumerable.Any() 扩展方法:
这是使用 lambda:
请注意 String 类上的 equals 运算符 将进行区分大小写的序数比较。如果您希望进行不区分大小写的比较,则必须使用 字符串。等于方法:
You can use the Enumerable.Any<TSource>() extension method:
Here's an alternative way of expressing this using a lambda:
Note that the equals operator on the String class will make a case-sensitive ordinal comparison. If you wish to make a case-insensitive comparison you'll have to use the String.Equals method:
使用 FirstOrDefault() 而不是 First()
Use FirstOrDefault() instead of First()
_database 是存储库吗?如果是这样,我建议在内部实现一个字典,这样您就可以公开一个
在未找到 userID 时返回 null 的方法。你的循环不能很好地扩展。
Is _database a repository? If so, I would suggest implementing a dictionary internally so you can expose a
method which returns null if userID is not found. Your loop won't scale well.