Dapper是否支持POCO中的c#6只读属性?

时间:2016-02-25 17:40:56

标签: dapper c#-6.0

鉴于以下内容:

public class SomePoco {
    public int IntValue { get; }
}

CREATE TABLE SomePocoStorage (IntValue INT NOT NULL)

INSERT SomePocoStorage VALUES (1), (274)

如果我打电话

connection.Query<SomePoco>("SELECT * FROM SomePocoStorage")

Dapper是否会在返回的IntValue个实例上填充SomePoco字段?

2 个答案:

答案 0 :(得分:10)

好问题!这不是我所针对的情景,但我很乐意看看会涉及到什么。由于我们已经做了很多讨厌的反思,这仍然可行。作为一个github问题可能更好,但我会看看。

更新 - it does now(目前仅通过回购 - 未部署):

[Fact] // passes
public void GetOnlyProperties()
{
    var obj = connection.QuerySingle<HazGetOnly>(
        "select 42 as [Id], 'def' as [Name];");
    obj.Id.IsEqualTo(42);
    obj.Name.IsEqualTo("def");
}
class HazGetOnly
{
    public int Id { get; }
    public string Name { get; } = "abc";
}

答案 1 :(得分:0)

否,因为如果该属性只有一个getter,则Dapper无法设置该属性的值。