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 不关心你写什么查询。它只是将结果集中的列名称与对象的 属性 名称相匹配。
我有一个具有类似架构的 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 不关心你写什么查询。它只是将结果集中的列名称与对象的 属性 名称相匹配。