【问题标题】:Returning a list in in sql to a list type将sql中的列表返回为列表类型
【发布时间】:2014-07-11 11:09:27
【问题描述】:

我正在尝试使用 linq 查询将 x 中的所有项目设置为列表

我收到了错误

无法将类型“string”隐式转换为“system.collection.generic.List”

int 也一样

public List<AuthorityLevelList> GetUserAuthLevelListnew()
{
        try
        {
            return db.ap_GetAuthorityLevelList()
                .Select(c => new AuthorityLevelList{ UserAuthorityLevel2 = c.UserAuthorityLevel.ToList() , ID = c.ID  })
                .ToArray();
        }
        catch (Exception ex)
        {
            throw ex;
        }
}

public partial class AuthorityLevelList
{
        public List<int> ID { get; set; }
        public List<string> UserAuthorityLevel2 { get; set; }
}

主要问题是我如何设置 linq 以返回一个列表而不仅仅是一个字符串,我想要列表 UserAuthorityLevel2 中表列 x 中的所有项目以及 int ID 的相同

请帮忙

【问题讨论】:

  • 所以;我可以检查一下 - 你想返回一个包含所有项目的 single AuthorityLevelList 实例,是吗?
  • ap_GetAuthorityLevelList() 返回值的类型是什么?
  • return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("ap_GetUserAuthorityLevelListItems");
  • @Marc Gravell 是的,我希望“AuthorityLevelList”包含 authlevels 的所有项目。和 Id 有一个 ID 列表
  • 顺便说一句;不要try/catch,如果你唯一要做的就是throwthrow ex;——那完全没有意义

标签: c# sql linq


【解决方案1】:

听起来您想要一个 AuthorityLevelList 实例,而不是 List&lt;AuthorityLevelList&gt;;那么:

var raw = db.ap_GetAuthorityLevelList();

return new AuthorityLevelList {
   ID = raw.Select(x => x.ID).ToList(),
   UserAuthorityLevel2 = raw.Select(x => x.UserAuthorityLevel).ToList(),
};

【讨论】:

  • 用这个方法我得到字符串是因为我的公开名单吗?有一个列表的返回类型?
  • 别担心是那个问题,谢谢
  • 实际上,如果我删除它并且只有'public AuthorityLevelList GetUserAuthLevelListnew()',我会得到同样的错误,然后如果我尝试返回'return new List' ID 和 AuthLevel 错误同样,这是因为它是列表中的列表吗?
  • 什么新 List&lt;UserAuthorityLevelListItems&gt; ?你的问题甚至没有提到UserAuthorityLevelListItems
  • @Mikey 是的,我也没有创建List&lt;AuthorityLevelList&gt;。在我看来,如果您在内部拥有列表,您只需要返回一个 AuthorityLevelList,而不是其中的 List&lt;&gt;;所以:将返回类型更改为AuthorityLevelList,IMO
猜你喜欢
  • 1970-01-01
  • 2021-01-27
  • 2021-07-29
  • 2012-06-09
  • 2020-05-09
  • 2013-12-03
  • 2013-06-11
  • 2019-08-26
  • 1970-01-01
相关资源
最近更新 更多