从数据库linqtosql访问值的任何更好的方法
本文关键字:任何 方法 更好 数据库 linqtosql 访问 | 更新日期: 2023-09-27 18:15:11
在使用Ling to SQL时,这是访问值的正确方式吗?我尝试返回一个IQueryable,但得到了一个错误,说明"处理后访问的DataContext"。’然后把它转换成一个列表。有人能告诉我这是可以的,或者建议我一些其他的答案,你觉得会更有效。我可以使用相同的实现在所有其他功能,将获取数据?请帮助。
public List<SS_User> Login(string UserName,String Password)
{
using (DbContext = new DALDataContext())
{
IQueryable<SS_User> User = (from Users in DbContext.SS_Users
where (Users.UserName == UserName && Users.Password == Password)
select Users);
return User.ToList<SS_User>();
}
}
就行了。注意,过于具体会让你的生活变得困难——你可以这样做:
return (from user in dB.Users
where {your test}
select user).ToList();
但是这和操作上的没有什么不同。
思想:
- 你不应该期待0或1匹配吗?不是多吗?(FirstOrDefault/SingleOrDefault)
- 我该怎么说呢…停止存储密码。没有真正的;阻止它。只有盐渍哈希。
当返回IQueryable时,它没有工作的原因是查询被"延迟"-它还没有被执行。如果在查询迭代(foreach, ToList等)之前处理数据上下文("using"),则查询无法工作。这就像从水龙头上取下一根软管,然后走到"业务端",打开喷嘴,想知道为什么没有水。