加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何使用linq-to-sql将存储过程结果映射到自定义

发布时间:2020-12-16 06:43:10 所属栏目:asp.Net 来源:网络整理
导读:我有一个存储过程返回一个结果集(4列x n行).数据基于我的数据库中的多个表,并为公司内的每个部门提供摘要.这是样本: usp_GetDepartmentSummaryDeptName EmployeeCount Male FemaleHR 12 5 7etc... 我正在使用linq-to-sql从我的数据库中检索数据(nb – 必须
我有一个存储过程返回一个结果集(4列x n行).数据基于我的数据库中的多个表,并为公司内的每个部门提供摘要.这是样本:

usp_GetDepartmentSummary

DeptName      EmployeeCount      Male      Female
HR            12                 5         7
etc...

我正在使用linq-to-sql从我的数据库中检索数据(nb – 必须使用sproc,因为它是我继承的东西).我想调用上面的sproc并映射到一个department类:

public class Department
{
     public string DeptName {get; set;}
     public int EmployeeCount {get; set;}
     public int MaleCount {get; set;}
     public int FemaleCount {get; set;}
}

在VS2008中,我可以将我的sproc拖放到linq-to-sql设计器的方法窗格中.当我检查designer.cs时,此sproc的返回类型定义为:

ISingleResult<usp_GetDepartmentSummaryResult>

我想要做的是以某种方式修改它,以便它返回一个Department类型,以便我可以将sproc的结果作为强类型视图传递:

<% foreach (var dept in Model) { %>
<ul>
    <li class="deptname"><%= dept.DeptName %></li>
    <li class="deptname"><%= dept.EmployeeCount %></li>
    etc...

任何想法如何实现这一目标?

注意 – 我已经尝试直接修改designer.cs和dbml xml文件但成功有限.我承认在直接更新这些文件方面有点超出我的深度,我不确定这是最佳做法?得到一些指示会很好??.

非常感谢

解决方法

在linq2sql构建器中手动创建类,因此该类是作为linq2sql数据上下文的一部分生成的.将类命名为Department,使用您想要的名称添加4个属性中的每一个.在每个属性的属性中,您需要设置类型(.net类型)和服务器数据类型(varchar(100),int)和源(sproc返回的字段的名称).

完成后,将sproc从服务器资源管理器拖到该类上,sproc的方法将返回一个结果作为该类型的集合.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读