Entity framework LINQ检查存在用户名,然后获取该用户';身份证
我有一个账户表:Entity framework LINQ检查存在用户名,然后获取该用户';身份证,entity-framework,asp.net-mvc-4,Entity Framework,Asp.net Mvc 4,我有一个账户表: table Account ( UserId int identity(1, 1), UserName nvarchar(20) not null unique, Password nvarchar(20) not null ) 通过使用LINQ。那么,我是否可以检查帐户的existUserName。这是真的,然后为该帐户获取UserId (我正在使用ASP MVC 4和实体框架)当使用Linq从数据库查询时,我更喜欢使用查询表
table Account
(
UserId int identity(1, 1),
UserName nvarchar(20) not null unique,
Password nvarchar(20) not null
)
通过使用LINQ。那么,我是否可以检查帐户的existUserName
。这是真的,然后为该帐户获取UserId
(我正在使用ASP MVC 4和实体框架)当使用Linq从数据库查询时,我更喜欢使用查询表达式,它更接近SQL表示法,而不是Lambda表示法 假设您拥有
用户名
:
try {
int userId = (from x in context.Account
where x.UserName == username
select x.UserId).SingleOrDefault());
if (userId > 0){
// user exists
}
else {
// user does not exist
}
}
catch(InvalidOperationException ex){
// has more than one element
}
当使用Linq从DB进行查询时,我更喜欢使用查询表达式,它比Lambda表示法更接近SQL表示法 假设您拥有
用户名
:
try {
int userId = (from x in context.Account
where x.UserName == username
select x.UserId).SingleOrDefault());
if (userId > 0){
// user exists
}
else {
// user does not exist
}
}
catch(InvalidOperationException ex){
// has more than one element
}
编辑:好多了。:)等待实际上没有,它仍然会返回0。所以userId将有一个值。是的,我已经更新了这个值。“OrDefault()”表示将返回
default(TSource)
,而不是default(tdestini)
:)是的。您可以将UserId投影到查询中的一个可为null的int中,在这种情况下,SingleOrDefault()可能会返回一个不带值的可为null的int。我还没测试过,它也可以用!在某些情况下,对于trycatch
,最好返回多个元素。我也感谢你的邀请。编辑:好多了等待实际上没有,它仍然会返回0。所以userId将有一个值。是的,我已经更新了这个值。“OrDefault()”表示将返回default(TSource)
,而不是default(tdestini)
:)是的。您可以将UserId投影到查询中的一个可为null的int中,在这种情况下,SingleOrDefault()可能会返回一个不带值的可为null的int。我还没测试过,它也可以用!在某些情况下,对于trycatch
,最好返回多个元素。我也感谢你的邀请