我正在尝试在MvvmCross 4中使用扩展。我的目标很简单:我有两个具有一对多关系的表格,想要访问它们。
我有两个类
查询本身是可以工作的,但是如果我检查返回对象的字段,Group总是
安装的Nuget包:
我有两个类
BusLine
和BusLineGroup
,每个BusLine都有一个Group作为外键。我在代码中运行一个简单的LINQ查询来获取所有Buslines:var testQuery =
from busLine in this._connection.Table<BusLine>()
select busLine;
查询本身是可以工作的,但是如果我检查返回对象的字段,Group总是
null
!请参见下面的类和表定义。
我做错了什么?为什么组总是null
?感谢您的帮助。
代码中的类:
public class BusLine
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
[ForeignKey(typeof(BusLineGroup))]
public int BusLineGroup { get; set; }
[ManyToOne]
public BusLineGroup LineGroup { get; set; }
}
public class BusLineGroup
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
public string Color { get; set; }
public string MainStations { get; set; }
[OneToMany(CascadeOperations = CascadeOperation.All)]
public List<BusLine> BusLines { get; set; }
}
这两个表格:
CREATE TABLE "BusLineGroup" (
`Id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`Name` TEXT NOT NULL,
`Color` TEXT NOT NULL,
`MainStations` TEXT NOT NULL
);
CREATE TABLE "BusLine" (
`Id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`Name` TEXT NOT NULL,
`BusLineGroup` INTEGER NOT NULL,
FOREIGN KEY(`BusLineGroup`) REFERENCES `BusLineGroup`(`Id`)
);
安装的Nuget包:
- MvvmCross.Plugin.SQLitePCL
- SQLiteNetExtensions
注意: MvvmCross包自动包含SQLite.Net-PCL。因此,这两个使用相同的PCL。
GetAllWithChildren
,我忘了提到了。那是一个sqlite net扩展方法,对吧?无论如何,可能应该将其作为自己的问题,但我找到了一个解决方法,所以不用担心,谢谢。 - James Wierzba