我已阅读this回答。它告诉我们创建一个与您返回的数据结构相匹配的类。所以我做了这样的类(class)
public class PersonJob
{
public Person person { get; set; }
public Job job { get; set; }
}
var data = db.Query<PersonJob>("SELECT * FROM Person, Job WHERE Person.JobID = Job.ID");
因此结果数据有结果,但属性 person
和 job
为 null。我的文本 block 与 Person
和 Job
类的属性绑定(bind)。请给我适当的建议。
最佳答案
该查询返回单个表中的多个列。
如果 Person
表包含 ID
、Name
和 JobID
列,并且 Jobs
表有列 ID
和 Description
,结果如下所示:
ID Name JobID ID Description
-- -------- ----- -- -------------
1 John Doe 10 10 Bottle Washer
2 Jane Roe 10 10 Bottle Washer
3 Xyroid 11 11 CEO
因此,您需要创建一个包含这五个字段的类。
为了避免重复的字段或字段名称,并使其在以后扩展表时也能正常工作,您应该在 SELECT
语句中列出所需的字段:
SELECT Person.ID AS PersonID, Person.Name, Job.ID AS JobID, Job.Description
FROM Person INNER JOIN Job ON Person.JobID = Job.ID
这需要一个像这样的类:
class PersonWithJob
{
public int PersonID ...
public string Name ...
public int JobID ...
public string Description ...
}
关于c# - 如何在 sqlite join 从 windows store c#/xaml 应用程序中的多个表返回数据时设置属性类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12793623/