2015-04-06 4 views
1

Я пытаюсь построить ИНТ [] массив из возвращаемых значений из базы данных,Динамически построить INT [] массив из базы данных

Обычно для INT [] массива, не база данных ведомыми вы бы сделать что-то вроде этого:

int[] arr1 = new int[] { 3, 4, 5 }; 

моя публичная переменная выглядит следующим образом:

public int[] SelectedItems { get; set; } // Which is used for the multi select list box 

Я тогда при получении значения сделать что-то вроде этого:

model.SelectedItems = (from x in collection select x.Id).ToArray(); 

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

Не удается преобразовать тип источника «динамический []» для целевого типа "ИНТ []

Я гуглом этой ошибки, но без толка.

Моя коллекция выглядит следующим образом:

public class UserActivities 
{ 
    public int Id { get; set; } 

    public string ActivityDesc { get; set; } 
} 

Update

Я использую dapper.net для получения значений так, как только я сделал вызов к БД я затем прочитать его следующим образом:

var activities = sqlCon.Read().ToList(); 

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

+1

«Моя коллекция выглядит так: ...» Это ваш элемент коллекции, а не ваша коллекция. Как объявляется переменная 'collection' в' from x in collection'? – dasblinkenlight

+0

Пожалуйста, добавьте полное объявление 'collection' на ваш вопрос. Казалось бы, это не «IQueryable ». – Alex

+0

@dasblinkenlight Я добавил обновление. –

ответ

1

Ваш (from x in collection select x.Id) требует IEnumerable<UserActivities> или IQueryable<UserActivities> как тип для переменной collection. Ошибка, которую вы получаете, заключается в том, что collection представляется IEnumerable<dynamic>.

Учитывая, что вы указали в своих изменениях и комментариях, которые используете Dapper.NET, и запрос выполняется с использованием метода QueryMultiple, вам нужно будет получить набор результатов с элементами типа UserActivities.

Это может быть достигнуто с использованием

var collection = sqlCon.Read<UserActivities>().ToList(); 

, который будет извлекать этот результирующий набор из результата множественного запроса.

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