Dapper 半动态打字?

Dapper Semi-Dynamic Typing?

我有一个具有类似架构的 table:

CREATE TABLE [dbo].[Property](
[id] [uniqueidentifier] NOT NULL,
[PropertyOccupantTypeId] [uniqueidentifier] NULL,
[PropertyStatusId] [uniqueidentifier] NOT NULL
-- Other potential columns
)

它有很多我的用户不需要了解的查找值。他们只需要 PropertyStatus 而不是 PropertyStatusId

假设查找 table 各有 2 列(guid:id,varchar:value)有没有一种方法可以编写类似于:

的查询
SELECT p.id,
       po.value as OccupantType,
       ps.value as PropertyStatus
       -- Other potential columns
FROM Property p 
     join PropertyOccupantType po on p.PropertyOccupant = po.id 
     join PropertyStatus ps on p.PropertyStatusId = ps.id

并将该映射映射到 Property 对象,如下所示:

public class Property
{
    public Guid id;
    public string PropertyOccupant;
    public string PropertyStatus;
}

或者我是否需要手动查询额外的 table 并以这种方式映射值?

这应该可以正常工作。 Dapper 不关心你写什么查询。它只是将结果集中的列名称与对象的 属性 名称相匹配。