gpt4 book ai didi

c# - 从LINQ查询返回匿名类型?

转载 作者:行者123 更新时间:2023-12-02 10:50:44 24 4
gpt4 key购买 nike

在业务逻辑层中,我创建了一个像这样的类:

public List<roleHasRight> SelectAllData()
{
try
{
return (from obj in Data.roleHasRights
join role in Data.roles on obj.FK_roleId equals role.roleId
select new
{
obj,
role.roleName
}).ToList();
}
catch
{
return null;
}
}

那么,我的 SelectAllData方法的返回类型是什么?
SelectAllData没有将 List<roleHasRight>作为返回类型,它将给出一个错误:

Cannot implicitly convert type System.Linq.IQueryable < AnonymousType#1>' to 'System.Linq.IQueryable < spaBL.roleHasRight>'

最佳答案

您正在使用以下方法创建新的匿名类型:

select new { obj,role.roleName}

此类型具有2个属性(rolename和roleHasRights对象)。
为了能够通过该方法返回相同的信息,您需要使用此信息创建一个类,或者返回动态信息。

例如
public class RoleHasRightInfo {
public string Rolename {get;set;}
public roleHasRight Right {get;set;}

}

并在linq表达式中创建它,如下所示:
select new RoleHasRightInfo(){ Right=obj,Rolename = role.roleName}

然后,该方法将需要返回此新类型的List:
public List<RoleHasRightInfo> SelectAllData() {
...
}

关于c# - 从LINQ查询返回匿名类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11358200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com