Результаты Sql, получающие булевские [дубликаты]

Добавление случая, когда имя класса для объекта, используемого в структуре сущности, такое же, как имя класса для файла с кодировкой веб-формы.

Предположим, у вас есть веб-форма Contact.aspx, чей класс codebehind Свяжитесь с вами, и у вас есть имя объекта Contact.

Затем следующий код вызовет исключение NullReferenceException при вызове context.SaveChanges ()

Contact contact = new Contact { Name = "Abhinav"};
var context = new DataContext();
context.Contacts.Add(contact);
context.SaveChanges(); // NullReferenceException at this line

Ради полноты класса DataContext

public class DataContext : DbContext 
{
    public DbSet Contacts {get; set;}
}

и класс сущности контакта. Иногда классы сущностей являются частичными классами, так что вы можете распространять их и в других файлах.

public partial class Contact 
{
    public string Name {get; set;}
}

Ошибка возникает, когда оба класса entity и codebehind находятся в одном и том же пространстве имен. Чтобы исправить это, переименуйте класс сущности или класс codebehind для Contact.aspx.

Причина. Я все еще не уверен в причине. Но всякий раз, когда какой-либо из классов сущностей расширяет System.Web.UI.Page, возникает эта ошибка.

Для обсуждения рассмотрим NullReferenceException в DbContext.saveChanges ()

33
задан Peter Bailey 30 March 2010 в 16:18
поделиться

2 ответа

$dbc возвращает false. У вашего запроса есть ошибка:

SELECT users.*, profile.* --You do not join with profile anywhere.
                                 FROM users 
                                 INNER JOIN contact_info 
                                 ON contact_info.user_id = users.user_id 
                                 WHERE users.user_id=3");

Исправление для этого вообще описано Raveren.

32
ответ дан Sean Vieira 25 August 2018 в 12:32
поделиться
  • 1
    Фраза «У вашего запроса есть ошибка в этом». сделал работу для меня. Благодаря! – Aimal Khan 1 February 2017 в 07:15

Запрос либо не возвращал строк, либо был ошибочным, поэтому возвращается FALSE. Измените его на

if (!$dbc || mysqli_num_rows($dbc) == 0)

mysqli_num_rows:

Возвращаемые значения

Возвращает TRUE при успешном завершении или FALSE при сбое. Для SELECT, SHOW, DESCRIBE или EXPLAIN mysqli_query () вернет объект результата.

28
ответ дан raveren 25 August 2018 в 12:32
поделиться
  • 1
    Если строки не возвращаются, запрос будет успешным (0 записей не заставят mysqli_query или mysqli_num_rows вернуть false). – Alvaro Montoro 27 December 2017 в 16:08
Другие вопросы по тегам:

Похожие вопросы: