vermanishad Ответов: 1

Как использовать щеголеватый под 3 параметр 2 параметр нормальное значение и один параметр в таблице параметров, как с помощью хранимой процедуры


public IEnumerable<MemberDetails> GetallMemberlist(int pageIndex, int pageSize)
        {
            string Location = "6,3";
            string[] loc = Location.Split(',');
            DataTable dt = new DataTable();
            dt.Columns.AddRange(new DataColumn[1] { new DataColumn("CategoryID", typeof(int)) });
           
            foreach (string s in loc)
            {
                dt.Rows.Add(s);
            }
            var para = new DynamicParameters();
            para.Add("@PageIndex", pageIndex);
             para.Add("@StateIdTable", dt);
            para.Add("@PageSize", pageSize); 
            var employees = con.Query<MemberDetails>("GetCustomersPageWise", para,commandType: CommandType.StoredProcedure);
        
            return employees;
        }


и ошибка показывает
System.NotSupportedException: 'The member StateIdTable of type System.Data.DataTable cannot be used as a parameter value'

плз помогите

Что я уже пробовал:

how to use dapper under 3 parameter 2 parameter normal value and one parameter  is table parameter both of using stored procedure

Afzaal Ahmad Zeeshan

Сообщение об ошибке ясно говорит о том, что здесь происходит не так.

vermanishad

да и ошибка-это система.Исключение notsupportedexception: 'член StateIdTable типа System.Данных.Объект DataTable не может использоваться в качестве значения параметра'

1 Ответов

Рейтинг:
8

vermanishad

когда я добавил AsTableValuedParameter в datatable то error show datatable не содержит определения для AsTableValuedParameter и никакого метода расширения AsTableValuedParameter

Richard Deeming

Метод расширения объявляется SqlMapper класс в Dapper пространство имен:
https://github.com/StackExchange/Dapper/blob/master/Dapper/SqlMapper.cs#L3640[^]

Вы уверены, что не используете .NET Core вместо MVC5?