我想在内置的 NPoco 函数中使用连接而不是任何查询连接支持,例如:
var users = db.FetchOneToMany<UserDto, CarDto>(x => x.UserId,
"select u.*, c.* from Users u inner join Cars c on u.UserId = c.UserId order by u.UserId");
请任何人提供一些想法,如何使用 C# 在 NPoco 中使用 Joins。
看一下这个例子,它有一个从 Person 到 Address 的一对多关系,即一个人可以有多个地址。您将IncludeMany与Reference属性结合使用。
[TableName("Person")]
[PrimaryKey("Id")]
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
[Reference(ReferenceType.Many, ColumnName = "Id", ReferenceMemberName = "PersonId")]
public List<Address> Addresses { get; set; } = new List<Address>();
}
[TableName("Address")]
[PrimaryKey("Id")]
public class Address
{
public int Id { get; set; }
public int PersonId { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
public AddressStatus Status { get; set; }
}
这就是您检索所有人的方式,每个人都有一个地址列表。
public async Task<People[]> GetPeople()
{
var query = _database.QueryAsync<People>()
.IncludeMany(s => s.Address);
var people = await query.ToArray();
return people;
}
要将其提升到一个新的水平,您可能需要根据地址或其他内容过滤掉地址。Status