Kai-Rune
Kai-Rune

Reputation: 462

Enum value in tuple using ServiceStack Ormlite throws null reference exception

I get "Object reference not set to an instance of an object" when using the Tuple notation with an Enum in the return structure.

If I change the type in the tuple from Enum type to string it works as it should, also if I change it to return only one value (string or enum) it works as it should.

It it a bug in ServiceStack? I am running ServiceStack.OrmLite.SqlServer v5.4.0 in LinqPad v5.31.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
}

Upvotes: 1

Views: 111

Answers (1)

mythz
mythz

Reputation: 143374

This change should be resolved from this commit.

This change is available from v5.4.1 that's now available on MyGet.

Upvotes: 1

Related Questions