我正在创建一个登录屏幕,我从表单中获取用户ID和密码。如何使用实体框架检查数据库中是否已存在重复的ID?
我正在使用实体框架4和asp.net 4.0
我对实体框架很陌生,所以简单的回复会非常有用。
谢谢!
答案 0 :(得分:3)
重复ID?那么你想验证登录是否正确,或者你想在创建新用户时检查登录是否已存在?
如果您想验证登录使用:
bool exists = context.Users.Any(u => u.Login == userName && u.Password == pwdHash);
如果您需要检索用户以在客户端进行验证(绝对不需要),您可以致电:
var user = context.Users.SingleOrDefault(u => u.Login == userName);
如果没有传递用户名的用户,则此调用将返回null。
如果您想在新用户注册期间检查登录是否空闲,您通常也可以使用Any
,但您必须执行检查并插入相同的序列化事务中 - 这会对高流量数据库产生性能影响。另一种方法是对数据库中的用户名设置唯一约束,并简单地尝试保存新用户。如果存在用户名,您将捕获异常。