如何使用SQLite和SQLExtensions在Xamarin中的同一张表中创建并选择2个外国keies

时间:2019-05-09 19:19:46

标签: sqlite xamarin foreign-keys

我有下表:

[Table("Users")]
public class User
{
    [SQLite.PrimaryKey]
    public long UserID { get; set; }

    public string Name { get; set; }
}
[Table("Followers")]
public class Followers
{
    [PrimaryKey, AutoIncrement]
    public long ID { get; set; }

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

    [ForeignKey(typeof(User))]
    public long UserFollowerID { get; set; }

    User user = null;
    [OneToOne(CascadeOperations = CascadeOperation.CascadeInsert)]
    public User User { get; set; }

    User follower = null;
    [OneToOne(CascadeOperations = CascadeOperation.CascadeInsert)]
    public User Follower { get; set; }
}

在同一张表中有2个带有外键的属性。当插入寄存器时,它可以正常工作,但是当我使用SQLExtensions与孩子选择时,所有的属性UserID和UserFollowerID都不相同,我在属性User和UserFollower中获得了相同的User。

public List<UserFollower> GetFollowers(long userID)
    {
        return sql.GetAllWithChildren<UserFollower>(x => x.UserID == userID);
    }

我正在使用Xamarin和SQLiteNetExtensions 2.1.0

谢谢!

0 个答案:

没有答案