#c# #linq #entity-framework-4.1
#c# #linq #entity-framework-4.1
Вопрос:
Наличие этого класса модели
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) amp;amp; (U.Password == encripPassword))
select U).First();
Если вам нужна дополнительная информация о базе данных, дайте мне знать, чтобы обновить мой вопрос
Комментарии:
1. Действительно ли в таблице есть строка с этим именем и паролем? Когда вы запускаете сгенерированную инструкцию SQL в SQL Management Studio, получаете ли вы результат?
2. @p.campbell Да, это приносит мне результаты
Ответ №1:
- Действительно ли в таблице есть строка с этим именем и паролем?
- Когда вы запускаете сгенерированную инструкцию SQL в SQL Management Studio, получаете ли вы результат?
Предложите проверить ваши два значения в UserName и encripPassword на наличие допустимых значений.
Usuario user = _db.Usuario
.FirstOrDefault(x=>x.Nombre == model.UserName
amp;amp; x.Password == encripPassword);
string sql = (user as ObjectQuery).ToTraceString(); //the SQL query generated.
if(user==null)
{
//doesn't exist.
}
Комментарии:
1. В таблице базы данных есть столбцы a
Nombre
и apassword
2. Да, в таблице есть столбцы, но есть ли в ней запись с конкретными значениями для тех столбцов, которые вы ищете? Первый () Метод расширения LINQ с генерирует исключение, если строки не возвращаются, независимо от правильности столбцов…
Ответ №2:
Очевидно, что вы не указываете на правильную базу данных, или у вас нет имени пользователя с этим паролем (я предполагаю, что зашифрованный пароль не соответствует тому, что находится в БД. Попробуйте использовать FirstOrDefault() , затем вы можете проверить значение Null, если пароль неверен…
Ответ №3:
Проверьте, имеет ли ваш класс надлежащие атрибуты, которые сообщают Linq to SQL, как сопоставить его с таблицей базы данных.
Ваш класс должен иметь
[Table(Name="Nombres")]
атрибут и свойства должны иметь
[Column]
атрибуты, некоторые из которых также должны быть первичными ключами и т. Д.
Если у вас этого еще нет, я предлагаю вам сгенерировать класс с помощью инструмента генерации классов сущностей: http://msdn.microsoft.com/en-us/library/bb425822.aspx#linqtosql_topic32