#xamarin #sqlite-net-pcl
Вопрос:
У меня есть таблица «Встреча», в которой хранятся данные и есть 2 внешних ключа. Один для идентификатора клиента и один для стилиста. Я создал таблицу с помощью ExecuteScalarAsync, чтобы я мог создать внешний ключ самостоятельно, потому что, если бы я использовал CreateTable, внешний ключ был бы просто некоторым числом без ограничений (например, у меня мог бы быть идентификатор клиента 5, даже если бы у меня не было клиента с идентификатором 5).
Теперь я хочу вытащить из своего стола несколько встреч, и мне нужен идентификатор клиента для отображения данных с помощью a .Где функция и все работает нормально, но идентификатор клиента и идентификатор стиля равны 0, даже если в моей базе данных они установлены правильно. Я использую монитор устройства Android для проверки своих данных.
Это моя база данных для записи на прием
public static async Tasklt;Appointmentgt; Get(int id) { await Init(); try { var aux = await db_appointments.Tablelt;Appointmentgt;().Where(e =gt; e.id == id).FirstOrDefaultAsync(); return aux; } catch (Exception e) { Log.Error("ERROR getting the appointment from databasen" e.Message "n" e.StackTrace); return null; } }
и это моя база данных
и если я попытаюсь запросить свою встречу по идентификатору пользователя, я получу исключение с нулевой ссылкой, но если запрос по идентификатору, мой идентификатор пользователя и идентификатор стиля равны 0
олсо моя модель
[PrimaryKey, AutoIncrement] public int id { get; set; } [ForeignKey(typeof(User)), OneToOne(CascadeOperations = CascadeOperation.All)] public int UserId { get; set; } [ForeignKey(typeof(Stylist)), OneToOne(CascadeOperations = CascadeOperation.All)] public int StylistId { get; set; } public string UserName { get; set; } public string StylistName { get; set; } //public DateTime StartsAt { get; set; } //public HairType HairType { get; set; } //public Todo Todo { get; set; } public float Cost { get; set; } public int Duration { get; set; } public DateTime AppointmentCreated { get; set; } public DateTime AppointmentAnswered { get; set; } public Status Status { get; set; }
Комментарии:
1. Не могли бы вы поделиться с нами минимальным проектом baisc для тестирования ? Вы можете загрузить его на github и прикрепить ссылку здесь.