序列中没有执行linq查询的元素
本文关键字:linq 查询 元素 执行 | 更新日期: 2023-09-27 18:12:47
拥有这个模型class
public class Usuario
{
#region Atributos
private int _intID = 0;
private Perfil _Perfil_FK = null;
private String _strNombre = "";
private String _strPassword = "";
#endregion
#region Propiedades
public int ID
{
get { return _intID; }
set { _intID = value; }
}
public virtual Perfil Perfil_FK
{
get { return _Perfil_FK; }
set { _Perfil_FK = value; }
}
public int PerfilID { get; set; }
public String Nombre
{
get { return _strNombre; }
set { _strNombre = value; }
}
public String Password
{
get { return _strPassword; }
set { _strPassword = value; }
}
#endregion
}
我试图使用这个查询,数据库表有数据,所以我看不到问题?
Usuario user = (from U in _db.Usuario
where ((U.Nombre == model.UserName) && (U.Password == encripPassword))
select U).First();
如果您需要更多关于数据库的信息,请告诉我更新我的问题
- 表实际上有一行的名称和密码吗?
- 当您在SQL Management Studio中运行生成的SQL语句时,您是否得到一个结果?
建议检查UserName和encrypppassword中的两个值是否有效。
Usuario user = _db.Usuario
.FirstOrDefault(x=>x.Nombre == model.UserName
&& x.Password == encripPassword);
string sql = (user as ObjectQuery).ToTraceString(); //the SQL query generated.
if(user==null)
{
//doesn't exist.
}
显然,您没有指向正确的数据库,或者您没有用户名与该密码(我猜加密的密码与数据库中的内容不匹配)。尝试使用FirstOrDefault(),然后你可以检查Null,如果密码是错误的…
检查您的类是否具有适当的属性,告诉Linq to SQL如何将其与数据库表进行匹配。
你的类应该有
[Table(Name="Nombres")]
属性,并且属性应该包含
[Column]
属性,有些也应该是主键等
如果你还没有这个,我建议你使用实体类生成工具生成类:http://msdn.microsoft.com/en-us/library/bb425822.aspx#linqtosql_topic32