Android с использованием сервера mssql [дубликат]

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

Предположим, у вас есть веб-форма 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 ()

13
задан ameni 16 August 2010 в 11:44
поделиться

3 ответа

Я думаю, что лучше всего использовать посредника, например веб-службы, или собственный логический уровень на основе TCP для вашего приложения, которое будет подключаться к серверу SQL и выполнять запросы вашей заявки. Не пытайтесь подключиться к вашему SQL-серверу напрямую с Android. Вы можете написать некоторый код на вашем сервере (или веб-сервисе), а затем вызвать эти методы кода с вашего устройства Android с помощью Http.

А также есть много тем в stackoverflow, например your:

О том, как писать веб-сервисы. Это большой вопрос, и вы должны выбрать технологию, есть очень много библиотек, фреймворков и платформ, которые помогут вам просто написать веб-сервис. Вы должны выбрать протокол связи, это может быть SOAP, WSDL или, возможно, удалить процедуру вызова, это может быть приложение для отдыха. Если вы используете Java-стек, на данный момент есть несколько популярных фреймворков:

Вы можете начать с чтения веб-службы:

Также некоторые ссылки, которые предоставляют пример доступа к веб-службам от android:

19
ответ дан Community 25 August 2018 в 22:30
поделиться
  • 1
    Не уверен, что ищет OP, но я надеялся на некоторые советы о том, как архитектовать аналогичный проект. Я попытался использовать SOAP, но я не мог получить синтаксический анализ XML для работы в платформе Android. Все библиотеки, которые я пытался использовать, были громоздкими или зависели от вещей, которые я не мог импортировать. – Yamikuronue 31 May 2012 в 13:26
  • 2
    @Yamikuronue IMHO SOAP слишком медленный. Я успешно использую Apache Thrift в Android SQLite & lt; - gt; PostgreSQL удаленный проект синхронизации БД и работает как очарование. – m0skit0 14 July 2013 в 18:24

Другим и гораздо более простым подходом является использование виртуального драйвера JDBC, который полагается на защищенную трехуровневую архитектуру: ваш JDBC-код отправляется через HTTP на удаленный сервлет, который фильтрует JDBC-код (конфигурация и безопасность) перед его передачей к драйверу JDBC MySql. Результат отправляется обратно через HTTP.

Есть несколько бесплатных программ, которые используют эту технику. Просто Google «Android JDBC Driver over HTTP».

0
ответ дан kaw 25 August 2018 в 22:30
поделиться

Вам нужно будет поддерживать онлайн-сервер среднего уровня. Он может взаимодействовать между вашим приложением и MSSQL db.May быть сервлетом или обработчиком запросов, который синхронизируется между SQLite и SQL Server db.

0
ответ дан Nezam 25 August 2018 в 22:30
поделиться
Другие вопросы по тегам:

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