我有一个人在编写存储过程时是一个向导,他可以立刻将10个表格打到一个列。我很想投入几天与他合作返回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;
}
cmsManagerList
是我在ORM中创建的类型,使存储过程可以将其值返回给我可以让Linq消化的值。我真正想做的是直接从存储过程直接返回一个列List<int>
。有谁知道如何更好地做到这一点?
答案 0 :(得分:2)
尝试这样的事情:
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;
}
}