是否有一种方法来结合(JOIN)数据从2表与SQLite在一起
本文关键字:数据 表与 在一起 SQLite JOIN 一种 是否 方法 结合 | 更新日期: 2023-09-27 18:18:28
我尝试了一些东西来组合两个表,但结果只返回第一个表的数据。
这是我的表:
[Table("Person")]
public class Person
{
[PrimaryKey, AutoIncrement]
public int PersonID { get; set; }
public string Name { get; set; }
public int CompanyID { get; set; }
}
[Table("Company")]
public class Company
{
[PrimaryKey, AutoIncrement]
public int CompanyID { get; set; }
public string Name { get; set; }
}
这是我的查询:
var result = await _Connection.QueryAsync<Person>("SELECT * FROM Person JOIN Company ON Person.CompanyID = Company.CompanyID");
return result;
但是它只给出了第一个表"Person"的属性。我忘了什么?
你忘了在did后面用现在时;)
但是实际上这个- _Connection.QueryAsync<Person>
将只返回Person字段,因为您指定了一个具体的Person类型作为泛型。
创建包含Person和Company字段的第三个类,或者使用匿名类型,然后使用如下内容:
var query = from person in await db.Table<Person>().ToListAsync()
join company in await db.Table<Company>().ToListAsync()
on person.CompanyID = company.CompanyID
select new
{
Name = person.Name,
CompanyName = company.Name
// And so on
}
注意:由于ToListAsync(),这会将所有记录加载到内存中
更新:您可以将select
更改为以下格式,而不是匿名类型:
PersonCompany personCompany = from person in .....
//---cut
on person.CompanyID = company.CompanyID
select new PersonCompany
{
Name = person.Name,
CompanyName = company.Name
// And so on
}