2016-03-15 78 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是你的User pk是int的'string' – Daniel

+0

这没什么区别。 – Saphire

回答

1

你可以看到源代码here,该异常被抛出线2044如果你检查,你会看到它检查C#类型是否被支持,然后再返回相关SQL类型的功能。

您尝试添加的配置文件类型不受支持,因为它是您创建的自定义类型,所以sqlite-net无法知道要为其返回的SQL类型。

尝试并重新设计您的代码,以便OneToOne关系仅在受支持的类型上需要。

+0

谢谢!我不能'sqlite'自动创建一个关系表? – Saphire

+0

恐怕我不是这方面的专家,但它看起来像从[这里](http://stackoverflow.com/a/29005182/6017401)的答案,可能有办法做你的要求。 – ChrisS