2017-02-14 9 views
2

Допустим, у меня есть определенный пользователем типа данных в базе данных: MySuperType, которая как две BigInt свойства в нем (Id + коде)Dapper и определены пользовательская база данных типов

И у меня есть хранимая процедура, которая принимает в тех параметры:

@MySuperType, @Price, @dateModified, etc... 

Сейчас в моем коде, я использую щеголеватый, как это:

using (var connecion = new SqlConnection(_connectionString)) 
{ 
    result = connection.Execute("SP_name", 
       new {mySuperType, price, date}, 
       commandType: CommandType.StoredProcedure); 
} 

Но я получаю сообщение об ошибке

Тип Операнда: Dapper не может отображать определенный пользователем тип: MySuperType от параметров к хранимой процедуре.

Изменение хранимой процедуры или замены определенного пользователем типа не вариант

Кто-нибудь есть идея, что я могу сделать, чтобы отобразить типы и отправить параметры (все из них) в хранимая процедура?

ответ

1

Tha имена параметров должны соответствовать параметрам, определенным в порядке:

using (var connecion = new SqlConnection(_connectionString)) 
     { 
      result = connection.Execute("SP_name", 
       new {MySuperType = mySuperType, Price = price, dateModified = date}, 
       commandType: CommandType.StoredProcedure); 
     } 

Щеголеватый чувствителен к регистру в отображении в 2-х направлениях (в качестве параметров, и в качестве результата).

Если вы хотите, чтобы не указывать имена параметров, убедитесь, что они одинаковы для переменных в C# и хранимой процедуре.

 Смежные вопросы

  • Нет связанных вопросов^_^