我有两个Dto:
[TableName("Address")]
public class AddressDto
{
public int Id { get; set; }
public string Name { get; set; }
public string City { get; set; }
public string Street { get; set; }
public string Building { get; set; }
public string Appartment { get; set; }
public string ZipCode { get; set; }
public string Floor { get; set; }
public DateTime CreatedDate { get; set; }
}
[TableName("DistributionPoint")]
public class DistributionPointDto
{
[Column("Id")]
public int Id { get; set; }
public string Name { get; set; }
[Reference(ReferenceType.Foreign, ColumnName = "AddressId", ReferenceMemberName = "Id")]
public AddressDto Address { get; set; }
}
如何使用nPoco获取带有嵌套AddressDto的DistributionPointDto? 我有一个通用的CRUD存储库,方法是:
public T FindById<T>(int id)
{
return _db.SingleById<T>(id);
}
但是,当我尝试获取DistributionPointDto时,AddressDto为null
答案 0 :(得分:0)
好奇你的代码是否可以工作,但我发现你需要使用 Query 而不是 SingleById 来包含引用的属性,然后你可以使用 Include 语句/子句,但是我不认为泛型可以使用对此,您必须明确提及所引用的属性名称,即 AddressDTO 给您。
_db.Query<DistributionPointDTO>()
.Include(x => x.AddressDTO)
.Where(x => x.Id == id).First();