2

我已阅读答案。它告诉创建一个与您返回的数据结构相匹配的类。所以我做了一个这样的课

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");

所以结果数据有结果但属性personjob空。Person我的文本块与和Job类的属性绑定。请给我适当的建议。

4

1 回答 1

2

该查询在单个表中返回多个列。如果Person表有列IDNameJobID,并且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 ...
}
于 2012-10-09T06:43:39.637 回答