使用 ServiceStack Ormlite 的元组中的枚举值抛出空引用异常

Enum value in tuple using ServiceStack Ormlite throws null reference exception

在 return 结构中使用带有枚举的元组表示法时,我得到 "Object reference not set to an instance of an object"。

如果我将元组中的类型从枚举类型更改为字符串,它会正常工作,如果我将它更改为 return 只有一个值(字符串或枚举),它也会正常工作。

它是 ServiceStack 中的错误吗? 我在 LinqPad v5.31.0

运行 ServiceStack.OrmLite.SqlServer v5.4.0
void Main()
{
    var uniqueId = "a635266024448923446";
    var result = new Dictionary<Language, string>();

    using (var db = _connectionFactory.OpenDbConnection())
    {
        // This works fine    
        var rows1 = db.Select<A>("select LanguageId, Name from tblTable");
        foreach (var row in rows1)
        {
            result.Add(row.LanguageId, row.Name);
        }
    }

    using (var db = _connectionFactory.OpenDbConnection())
    {

        // This throws "Object reference not set to an instance of an object."
        var rows2 = db.Select<(Language Language, string Name)>("select LanguageId, Name from tblTable");
        foreach (var row in rows2)
        {           
            result.Add(row.Language, row.Name);
        }
    }
}

public class A
{
    public Language LanguageId { get; set; }
    public string Name { get; set; }
}

public enum Language
{
    NO,
    EN,
    SV,
    DK
}

此更改应从 this commit 开始解决。

此更改适用于现在 available on MyGet 的 v5.4.1。