Добавление случая, когда имя класса для объекта, используемого в структуре сущности, такое же, как имя класса для файла с кодировкой веб-формы.
Предположим, у вас есть веб-форма 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 ()
Колба мертва - простая, чрезвычайно мощная и интуитивная. Я предпочитаю использовать Django для небольших проектов, поскольку Django использует путь слишком много папок (просто следуйте инструкциям по введению). Вот что я подразумеваю под простым и интуитивным. Я не могу объяснить это словами, поэтому вот пример скрипта:
Файл: script.py
app = Flask(__name__)
app.config.from_object(__name__)
@app.route('/')
def index():
return render_template('index.html', message = 'Hello')
if __name__ == '__main__':
app.run(host = '0.0.0.0')
Файл: index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Test</title>
</head>
<body>
{% if message != 'nope' %}
{{ message }}
{% endif %}
</body>
</html>
Просто мои мысли, так что удачи.
Если ваш друг хочет получить что-то вместе очень быстро и легко и не имеет большого опыта программирования, я думаю, что его лучшим вариантом будет web2py . Он не требует установки или конфигурации, не имеет зависимостей и включает в себя веб-сервер, реляционную базу данных и веб-интегрированную среду разработки и админ-интерфейс ( demo ).
очень легко узнать и был разработан для удобства использования и производительности разработчика . Вы можете многое сделать с очень маленьким кодом благодаря включенному подклассу и многим разумным поведениям по умолчанию. Если приложение становится более сложным, Web2py может справиться с ним, поскольку он представляет собой хорошо интегрированную полнотекстовую инфраструктуру с множеством встроенных функций, включая уровень абстракции базы данных, обработку и проверку формы, управление доступом, веб-сервисы и простоту Интеграция Ajax.
Если ему нужна помощь при запуске или имеет какие-либо вопросы, он получит большую помощь от очень дружественного и отзывчивого списка рассылки .
Вот полный рабочий эквивалент web2py для приложения Blender Flask (хотя эта версия добавляет хороший макет по умолчанию с меню, а также поддержку интернационализации для перевода сообщения «Hello»):
Файл: default.py
def index():
return dict(message=T('Hello'))
Файл: index.html
{{extend 'layout.html' # optional}}
{{if message != 'nope':}}
{{=message}}
{{pass}}
Может быть, он смотрит на Флакс? http://flask.pocoo.org/ Очень простая веб-среда в Python для быстрого создания небольшого веб-сайта.