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