在 C# 中将 NHibernate IList 转换为列表

发布于 2024-11-03 21:06:07 字数 1053 浏览 0 评论 0原文

我有 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, Version=1.0.0.0, Culture=neutral , PublicKeyToken=null]]。

任何将 IList 传递到 JSON 的解决方案都会对我有所帮助。谢谢。

I have NHibernate IList. I want to convert to a List. Please help me.

Here is my code

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

I want to convert this to list

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;
    }
}

Update

I want to update my question since my question is not well explained.

Here is my code to pass it to jQuery UI Autocomplete:

[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();
    }

I get following error:

Cannot serialize interface System.Collections.Generic.IList`1[[QuestionCenter.Domain.Tag, QuestionCenter.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].

Any solution to pass my IList to JSON will help me. Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

醉梦枕江山 2024-11-10 21:06:08

使用 LINQ:

return tagList.ToList();

Using LINQ:

return tagList.ToList();
水波映月 2024-11-10 21:06:08

使用 .ToList() 扩展方法:

return list.ToList()

Use .ToList() extension method:

return list.ToList()
守护在此方 2024-11-10 21:06:08

您需要将返回类型更改为 Tag[] 并使用 ToArray() 而不是 ToList()。 IIRC,您无法在 Web 方法中序列化 IList。

You need to change the return type to Tag[] and use ToArray() instead of ToList(). IIRC, you cannot serialize an IList in a webmethod.

雪落纷纷 2024-11-10 21:06:08

return Tag.GetAll().ToList() 不适合您?

return Tag.GetAll().ToList() does not work for you?

冰魂雪魄 2024-11-10 21:06:08
var myList = Tag.GetAll()
                 .ConvertAll(tag => new CategoryTag{ Id = tag.Id, XXX = tag.YYY})
                 .ToList();

更新

根据您对答案的评论,我将使用 AutoMapper 代替。

var myList = Tag.GetAll()
                 .ConvertAll(tag => new CategoryTag{ Id = tag.Id, XXX = tag.YYY})
                 .ToList();

Update

Based on your comment to your answer I would use AutoMapper instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文