<textarea id="TextAreaSend" runat="server" name="SendText">
Я создал текстовую область, чтобы написать что-то. И сохранит ее в базе данных с linq для сущности.
if (!String.IsNullOrEmpty(TextAreaSend.InnerText))
{
int ticketno = Convert.ToInt32(ViewState["TicketNo"]);
var source = from tickettext in entities.Tickets
where tickettext.TicketNo == ticketno
select tickettext;
Ticket ticket = source.Single();
//This is where null point exception is
ticket.Answer.AnswerText = TextAreaSend.InnerText;
entities.SaveChanges();
}
ticket.Answer.AnswerText = TextAreaSend.InnerText; В этой строке я получаю;
Ссылка на объект не установлена в экземпляр объекта. Почему? Как я могу это исправить?
Если он не проваливается в первой строке этого кода, когда он выполняет нулевую или пустую проверку TextAreaSend.InnerText
, то он не может терпеть неудачу по той же причине при чтении значения свойства для назначения AnswerText
.
ticket
не может быть здесь null
потому что вы получили бы другое исключение, если бы запрос запроса отправил 0 или более 1 Ticket
.
То, что у нас осталось, что ticket.Answer
, вероятно, элемент, который null
здесь, а не ticket
или TextAreaSend
. Вы пытаетесь записать свойство на объект, который является null
.
Я бы посмотрел, сколько объектов возвращается, когда вы вызываете "source.Single()". Могут быть исключения, если возвращено более одного объекта или нет объектов, возвращаемых при использовании "Single()". Кроме того, если вы используете "SingleOrDefault()", вы можете выполнить проверку на нуль до перехода к остальной части вашего кода.
ticket.Answer
?ticket.Answer
? Вы уверены, что это не то, что дает вам нулевую ссылку?