Dapper модель отображения - PullRequest
1 голос
/ 22 июля 2011

Я играл с Dapper и у меня есть вопрос. Есть ли у меня возможность иметь свойство типа перечислителя в моем классе POCO и использовать Dapper? Похоже, что каждый раз, когда я добавляю свойство типа Enumerator, я получаю следующее исключение:

System.NotSupportedException: тип: * my_enum_type * не является поддерживается dapper

Я что-то здесь упускаю? Есть ли атрибут, который я могу прикрепить к этим свойствам, чтобы указать, какие из них сопоставляются со столбцами таблицы базы данных?

1 Ответ

2 голосов
/ 25 июля 2011

Это старая ошибка в dapper, убедитесь, что вы используете последнюю версию.Даппер раньше не выполнял фильтрацию по свойствам типов ввода.

Хорошо, я понял это, и это была моя вина, что я не увидел этого на первом месте.Это то, что я делал изначально:

Dim result = conn.Query("SELECT * FROM Users WHERE UserID = @UserID", New User With {.UserID = userID})

Но что нужно сделать, это:

Dim result = conn.Query("SELECT * FROM Users WHERE UserID = @UserID", New With {.UserID = userID})

Другими словами, объявление param как анонимного типа является существенным.Если вы объявляете param как определенный тип, и этот тип содержит свойство типа, которое не охватывается более щадящим кодом (например, Enum), то код завершается с указанной выше ошибкой.Мой класс User имел свойство типа Enum, и это вызывало проблему.

...