Dapper: использование оператора WHERE IN с обработчиками настраиваемых типов приводит к тому, что «не существует сопостаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Dapper: использование оператора WHERE IN с обработчиками настраиваемых типов приводит к тому, что «не существует сопоста

Сообщение Гость »


Однако я не уверен, делаю ли я что-то не так с библиотекой:

У меня есть собственный обработчик типа для одного из моих классов. Когда я обычно использую обработчик этого типа с dapper, у меня нет проблем с его правильным использованием при выполнении, скажем, вставки или запроса данных.

Однако в тот момент, когда я использую, скажем, операторы SELECT с использованием WHERE IN, запрос всегда завершается с ошибкой, упомянутой в заголовке, а именно:

"Использование оператора WHERE IN с обработчиками пользовательских типов приводит к выводу "Нет" существует сопоставление типа объекта... с известным собственным управляемым поставщиком тип".

Пример такого запроса:

var readItem = await Connection.QueryAsync($"SELECT * FROM HelloWorld WHERE MyColumn IN @Vals", new { Vals = new List { item1, item2 }.ToArray() }) ; Здесь «TestString» — мой собственный тип. на данный момент это просто класс с одним строковым свойством. Я использую параметризованный оператор SQL с анонимными объектами. Я преобразую список в массив, потому что где-то видел, что это решило проблему для других. Однако мне это не помогло.

Тем временем запрос типа:

var readItem = await Connection.QueryAsync($"SELECT * FROM HelloWorld WHERE MyColumn = @Val", new { Val = item1 }); Отлично работает.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»