Отобразите оставшиеся имена столбцов для заполнения словаря в Dapper. Net? - PullRequest
0 голосов
/ 25 марта 2020

Я написал класс, который расширяет SqlMapper.ITypeMap, и у меня есть оператор switch в моей функции public SqlMapper.IMemberMap GetMember(string columnName). Проблема в том, что я хочу отобразить любые дополнительные столбцы в Dictionary<string, string>.

public class MyClass
{
    public string Name { get; set; }
    public int SequenceNumber{ get; set; }
    public bool IsLocked{ get; set; }
    public Dictionary<string, string> AdditionalValues { get; set; }
}

public SqlMapper.IMemberMap GetMember(string columnName)
{
    switch (columnName)
    {
        case string x when x.EndsWith(nameof(MyClass.Name)):
            columnName = nameof(MyClass.Name);
            break;

        case string x when x.EndsWith(nameof(MyClass.SequenceNumber)):
            columnName = nameof(MyClass.SequenceNumber);
            break;

        case string x when x.EndsWith(nameof(MyClass.IsLocked)):
            columnName = nameof(MyClass.IsLocked);
            break;

        default:
            // How do I specify to map the extra columns to my Dictionary<string, string>
            break;
    }
}

Например, если запрос SQL вернул дополнительный 4-й и 5-й столбец с именем «ExtraA» и «ExtraB», тогда я хочу, чтобы мои Dictionary<string, string> выглядели так:

["ExtraA"] = "SomeValueA"
["ExtraB"] = "SomeValueB"
...