База данных SQLite.net с приложением Xamarin.Forms - PullRequest
0 голосов
/ 16 мая 2018

У меня проблема с базой данных SQLite в моем проекте Xamarin.Forms PCL.Я следовал этому примеру из Документов Microsoft:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/databases

Я использовал свои собственные типы для хранения данных, и это работало хорошо для простых пользовательских типов, но я недавно добавилList<int> и тип посещаемости для пользовательского объекта (Info).

Теперь, когда я пытаюсь создать объект, я получаю следующие ошибки:

Не знаю о System.Collections.Generic.List`1 [System.Int32] Не знаю о MyApp.Attendance

Вот код инициализации:

readonly SQLiteAsyncConnection database;
database = new SQLiteAsyncConnection(dbPath);
database.CreateTableAsync<UserPrefrences>().Wait();
database.CreateTableAsync<Attendance>().Wait();
database.CreateTableAsync<Info>().Wait();

Я использую Xamarin.Forms с Xamarin.iOS.

1 Ответ

0 голосов
/ 16 мая 2018

Вы не можете хранить их по умолчанию, как это.Однако есть sqlite-net-extensions, которые вы можете использовать для этого.Вы можете посмотреть sqlite-net-extensions здесь .

Используя это расширение, вы сможете сделать это с помощью свойства TextBlob, что-то вроде этого:

public class Address
{
     public string StreetName { get; set; }
     public string Number { get; set; }
     public string PostalCode { get; set; }
     public string Country { get; set; }
}

public class Person
{
     public string Name { get; set; }

     [TextBlob("PhonesBlobbed")]
     public List<string> PhoneNumbers { get; set; }

     [TextBlob("AddressesBlobbed")]
     public List<Address> Addresses { get; set; }

     public string PhonesBlobbed { get; set; } // serialized phone numbers
     public string AddressesBlobbed { get; set; } // serialized addresses
  }

Дополнительные сведения о TextBlob из url .

Свойства текстового объекта blobbed Свойства текстового объекта BLOB-объекта сериализуются в текстовое свойство при сохранении и десериализуются призагружен.Это позволяет хранить простые объекты в одной и той же таблице в одном столбце.

Свойства с текстовыми метками имеют небольшие накладные расходы на сериализацию и десериализацию объектов и некоторые ограничения, но являются лучшим способом хранения простых объектов, таких как List илиСловарь основных типов или простых отношений.

Свойства текстового объекта требуют объявленного строкового свойства, в котором хранится сериализованный объект.

Я только что увидел, что есть также похожие / такие же вопросыоб этой теме уже в StackOverflow, так что вы можете взглянуть на них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...