繁体   English   中英

使用LINQ从SQL存储过程返回单个值

[英]Returning single value from SQL Stored Procedure using LINQ

我有一个存储过程,该过程返回要使用LINQ返回的十进制值。 我使用以下代码通过ViewModel返回多个值,但是从不返回单个值,并且诚实地在网上寻找东西:

var CompanyIdParameter = new SqlParameter("CompanyId", companyId);
departmentListVM = db.Database.SqlQuery<DepartmentViewModel>("sp_SELECT_Department_Hierarchy @CompanyId", CompanyIdParameter)
    .Select(x=> new DepartmentViewModel()
    {
        pkiDepartmentId = x.pkiDepartmentId,
        DepartmentName = x.DepartmentName,
        ParentDepartmentId = x.ParentDepartmentId,
        ParentDepartmentName = x.ParentDepartmentName,
        fkiCompanyId = x.fkiCompanyId,
        isLastDept = x.isLastDept
    }).ToList();

我能不能做这样的事情:

var IdeaIdParameter = new SqlParameter("IdeaId", ideaId);
var SessionIdParameter = new SqlParameter("SessionId", sessionId);
var CriteriaIdParameter = new SqlParameter("CriteriaId", item.fkiJudgingCriteriaId);
decimal result = db.Database.SqlQuery<decimal>("sp_SELECT_Department_Hierarchy @IdeaId, @SessionId, @CriteriaId", IdeaIdParameter, SessionIdParameter, CriteriaIdParameter)
                        .Select(x => x.value);

我是说它太复杂还是有更好的方法?

怎么样

var value = db.Database.SqlQuery<decimal>("sp_SELECT_Department_Hierarchy @IdeaId, @SessionId, @CriteriaId", IdeaIdParameter, SessionIdParameter, CriteriaIdParameter)
                  .SingleOrDefault();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM