如何解决数据读取器在访问存储过程时与指定的错误不兼容?
namespace EPICOR
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.Core.Objects;
using System.Linq;
public partial class TasksListEntities : DbContext
{
public TasksListEntities()
: base("name=TasksListEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual ObjectResult<GetTaskPlans_EPICOR_Result> GetTaskPlans_EPICOR(string functionalLocation,string module)
{
var functionalLocationParameter = functionalLocation != null ?
new ObjectParameter("FunctionalLocation",functionalLocation) :
new ObjectParameter("FunctionalLocation",typeof(string));
var moduleParameter = module != null ?
new ObjectParameter("Module",module) :
new ObjectParameter("Module",typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<GetTaskPlans_EPICOR_Result>("GetTaskPlans_EPICOR",functionalLocationParameter,moduleParameter);
}
}
}
生成的模型类:
namespace EPICOR
{
using System;
public partial class GetTaskPlans_EPICOR_Result
{
public int OperationID { get; set; }
public string PIRCode { get; set; }
public string TaskName { get; set; }
public Nullable<int> OperationNo { get; set; }
public string OperationCode { get; set; }
public string OperationDescription { get; set; }
public string Resource { get; set; }
public string NDTResources { get; set; }
public Nullable<double> Duration { get; set; }
public string requiredEquipmentStatus { get; set; }
public string TimeBaseInterval { get; set; }
public Nullable<System.DateTime> StartDate { get; set; }
public Nullable<System.DateTime> LastInspDate { get; set; }
public Nullable<System.DateTime> NextInspDate { get; set; }
public string FunctionalLocation { get; set; }
}
}
从webapi控制器调用
namespace EPICOR.Controllers
{
public class EPICORController : ApiController
{
TasksListEntities tskEntities = new TasksListEntities();
[HttpGet]
public ObjectResult<GetTaskPlans_EPICOR_Result> GetTasksList()
{
ObjectResult<GetTaskPlans_EPICOR_Result> tList = (ObjectResult<GetTaskPlans_EPICOR_Result>) tskEntities.GetTaskPlans_EPICOR("","");
return tList;
}
}
}
存储过程:
ALTER PROCEDURE [dbo].[GetTaskPlans_EPICOR]
@FunctionalLocation varchar(250) = 'B001-20-T-001',@Module varchar(20) = 'PEMS'
AS
BEGIN
IF(LOWER(@Module) = LOWER('PEMS'))
BEGIN
SELECT
OperationID,PIRCode,TaskName,OperationNo,OperationCode,OperationDescription,Resource,NDTResources,Duration,requiredEquipmentStatus,TimeBaseInterval,StartDate,LastInspDate,NextInspDate,FunctionalLocation
FROM
PIRTaskList
WHERE
FunctionalLocation LIKE '%' + @FunctionalLocation + '%'
END
IF(LOWER(@Module) = LOWER('PSVMS'))
BEGIN
SELECT
PTList.OperationID,PTList.PIRCode,PTList.TaskName,PTList.OperationNo,PTList.OperationCode,PTList.OperationDescription,PTList.Resource,PTList.NDTResources,PTList.Duration,PTList.requiredEquipmentStatus,PTList.TimeBaseInterval,PTList.StartDate,PTList.LastInspDate,PTList.NextInspDate,PEData.FunctionalLocationNew 'FunctionalLocation'
FROM
PSVMS_PIRTaskList PTList
INNER JOIN
PSVMS_EnggData PEData ON PEData.EnggID = PEData.EnggID
WHERE
PEData.FunctionalLocationNew LIKE '%' + @FunctionalLocation + '%'
END
ELSE IF(LOWER(@Module) = LOWER('PimsOFF'))
BEGIN
SELECT
POTlist.OperationID,POTlist.PIRCode,POTlist.TaskName,POTlist.OperationNo,POTlist.OperationCode,POTlist.OperationDescription,POTlist.Resource,POTlist.NDTResources,POTlist.Duration,POTlist.requiredEquipmentStatus,POTlist.TimeBaseInterval,POTlist.StartDate,POTlist.LastInspDate,POTlist.NextInspDate,POTlist.PipelineID 'FunctionalLocation'
FROM
PimsOFF_PIRTaskList POTlist
WHERE
POTlist.PipelineID LIKE '%' + @FunctionalLocation + '%'
END
ELSE IF(LOWER(@Module) = LOWER('PimsON') OR LOWER(@Module) = LOWER('PimsOFF'))
BEGIN
SELECT
POTlist.OperationID,POTlist.PipelineID 'FunctionalLocation'
FROM
PimsOFF_PIRTaskList POTlist
WHERE
POTlist.PipelineID LIKE '%' + @FunctionalLocation + '%'
END
ELSE IF(LOWER(@Module) = LOWER('EIRMS'))
BEGIN
SELECT
RTlist.OperationID,RTlist.PIRCode,RTlist.TaskName,RTlist.OperationNo,RTlist.OperationCode,RTlist.OperationDescription,RTlist.Resource,RTlist.NDTResources,RTlist.Duration,RTlist.requiredEquipmentStatus,RTlist.TimeBaseInterval,RTlist.StartDate,RTlist.LastInspDate,RTlist.NextInspDate,REq.FunctionalLocation 'FunctionalLocation'
FROM
RCM_PIRTaskList RTlist
INNER JOIN
RCM_Equipment REq ON REq.EquipmentID = RTlist.EquipmentID
WHERE
REq.FunctionalLocation LIKE '%' + @FunctionalLocation + '%'
END
END
错误:
数据读取器与指定的“ TasksListModel.GetTaskPlans_EPICOR_Result”不兼容。类型为“ OperationID”的成员在数据读取器中没有具有相同名称的对应列
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。