Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用Linq从存储过程中获取单列行集,如何清理此黑客作业?_.net_Linq_Linq To Sql - Fatal编程技术网

.net 使用Linq从存储过程中获取单列行集,如何清理此黑客作业?

.net 使用Linq从存储过程中获取单列行集,如何清理此黑客作业?,.net,linq,linq-to-sql,.net,Linq,Linq To Sql,我有一个家伙,他是一个编写存储过程的巫师,他可以在任何时间内将10个表咀嚼成一列。我有点想花几天时间和他一起返回XML而不是行集,因为我可以一整天毫无问题地消化这些XML。我这么说是因为要获得行集的结果是一个挑战,因为我可以很容易地使用WCF发送下线。这是我为使这项工作成功所做的一项尝试 public static List<int> GetListOfManagersForRegional(int empId) { CMSDataContext cms =

我有一个家伙,他是一个编写存储过程的巫师,他可以在任何时间内将10个表咀嚼成一列。我有点想花几天时间和他一起返回XML而不是行集,因为我可以一整天毫无问题地消化这些XML。我这么说是因为要获得行集的结果是一个挑战,因为我可以很容易地使用WCF发送下线。这是我为使这项工作成功所做的一项尝试

public static List<int> GetListOfManagersForRegional(int empId)
    {
        CMSDataContext cms = new CMSDataContext();
        List<cmsManagerList> mgrs = cms.GetRegionalsManagers(empId).ToList();
        List<int> managers = new List<int>();
        foreach (cmsManagerList m in mgrs)
        {
            if(m.ManagerId != null) managers.Add((int)m.ManagerId);
        }
        return managers;
    }
public静态列表GetListOfManagersForRegional(int-empId)
{
CMSDataContext cms=新的CMSDataContext();
List mgrs=cms.getRegionalsManager(empId.ToList();
列表管理器=新列表();
foreach(cmsManagerList m经理)
{
如果(m.ManagerId!=null)managers.Add((int)m.ManagerId);
}
回报经理;
}

cmsManagerList
是我在ORM中创建的一种类型,它使存储过程能够将其值返回给我可以让Linq消化的内容。我真正想做的是直接从存储过程开始,它只将一列返回到
列表
。有人知道如何做得更好吗?

试试这样的方法:

public static IEnumerable<int> GetListOfManagersForRegional(int empId) {
    using (var cms = new CMSDataContext()) {
        return
            from m in cms.GetRegionalsManagers(empId)
            where m.ManagerID != null
            select m.ManagerId;             
    }
}
public静态IEnumerable GetListOfManagersForRegional(int-empId){
使用(var cms=new CMSDataContext()){
返回
从cms.GetRegionalsManager(empId)中的m开始
其中m.ManagerID!=null
选择m.ManagerId;
}
}

我需要做的唯一调整是添加(int)以使返回值满意