2016-03-15 8 views
0

Я хотел бы написать простые отношения «один-к-одному» между моими моделями. Сообщение об исключении, которое я получаю от sqlite-net, равно Don't know about Profile.Как написать простые отношения OneToOne?

public class User 
{ 
    [PrimaryKey] 
    public int pk { get; set; } 

    public string first_name { get; set;} 

    [OneToOne] 
    public Profile profile { get; set;} 

    ... 
} 

public class Profile 
{ 
    [PrimaryKey] 
    public int pk { get; set; } 

    [ForeignKey(typeof(User))] 
    public string UserID { get; set; } 

    [OneToOne] 
    public User user { get; set;} 
} 

Что мне здесь не хватает?

+1

Почему UserId является «строкой», когда ваш пользователь pk «int» – Daniel

+0

Это не имеет значения. – Saphire

ответ

1

Вы можете увидеть исходный код here, это исключение вызывается в строке 2044. Если вы изучите функцию, вы увидите, что она проверяет, поддерживается ли тип C#, а затем возвращается соответствующий тип SQL.

Тип профиля, который вы пытаетесь добавить, не поддерживается, так как он создан специально, поэтому sqlite-net не может знать, какой тип SQL для него будет возвращен.

Попробуйте изменить код, чтобы отношения OneToOne были необходимы только для поддерживаемых типов.

+0

Спасибо! Разве я не могу заставить sqlite автоматически создавать таблицу отношений? – Saphire

+0

Боюсь, что я не специалист в этой области, но, похоже, из ответа [здесь] (http://stackoverflow.com/a/29005182/6017401), что может быть способ сделать то, что вы требуют. – ChrisS

 Смежные вопросы

  • Нет связанных вопросов^_^