Конвертировать NHibernate IList в список в C # - PullRequest
0 голосов
/ 28 апреля 2011

У меня есть NHibernate IList. Я хочу преобразовать в список. Пожалуйста, помогите мне.

Вот мой код

IList<Tag> list = Tag.GetAll();

Я хочу преобразовать это в список

public class CategoryTag
{
    public int ID { get; set; }
    public string TagName { get; set; }

    public CategoryTag()
    {

    }

    public List<CategoryTag> GetCategoryTagList()
    {
         IList<Tag> list = Tag.GetAll();

         // How do I return Tag as List?

        return tagList;
    }
}

Обновление

Я хочу обновить свой вопрос, так как мой вопрос не очень хорошо объяснен.

Вот мой код для передачи в автозаполнение jQuery UI:

[WebMethod]
    public IList<Tag> FetchTagList(string tag)
    {
        var ctag = new List<Tag>(Tag.GetAll())
            .Where(m => m.TagName.ToLower().StartsWith(tag.ToLower()));
        return ctag.ToList();
    }

Я получаю следующую ошибку:

Невозможно сериализовать интерфейс System.Collections.Generic.IList`1 [[QuestionCenter.Domain.Tag, QuestionCenter.Domain, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = ноль]].

Мне поможет любое решение передать мой IList в JSON. Спасибо.

Ответы [ 5 ]

2 голосов
/ 28 апреля 2011

Используйте метод расширения .ToList ():

return list.ToList()
2 голосов
/ 28 апреля 2011

Использование LINQ:

return tagList.ToList();
1 голос
/ 28 апреля 2011

Вам необходимо изменить тип возвращаемого значения на Tag [] и использовать ToArray () вместо ToList (). IIRC, вы не можете сериализовать IList в веб-методе.

0 голосов
/ 28 апреля 2011

return Tag.GetAll (). ToList () у вас не работает?

0 голосов
/ 28 апреля 2011
var myList = Tag.GetAll()
                 .ConvertAll(tag => new CategoryTag{ Id = tag.Id, XXX = tag.YYY})
                 .ToList();

Обновление

На основании вашего комментария к вашему ответу я бы использовал AutoMapper вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...