2017-02-16 7 views
0

Привет Я получаю сообщение об ошибке на который читаетЧлен типа «Метод», не имеет соответствующего столбца в чтения данных с тем же именем

Считыватель данных несовместим с указанным 'TestSearch_Result'. Член типа , «Метод», не имеет соответствующего столбца в файле данных с таким же именем.

Я тщательно исследовал проблему, пробовал множество решений и ничего не работал. Любая помощь будет здорово

Определение Таблица

PK Id

FK CourseId

FK TypeId

FK MethodId

Имя

Описание

IsActive

spTestSearch

USE [Project] 
GO 
/****** Object: StoredProcedure [dbo].[spTestSearch] Script Date: 2/15/2017 7:39:51 PM ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
-- ============================================= 
-- Author: Riley 
-- Create date: 2/15/2017 
-- Description: Search Attempt 2 
-- ============================================= 
ALTER PROCEDURE [dbo].[spTestSearch] 
-- Add the parameters for the stored procedure here 
@Name   NVARCHAR(50), 
@CourseIdList   XML, 
@TypeIdList    XML, 
AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 

    -- Insert statements for procedure here 
    SELECT * 
    FROM [Definition] ad 
     JOIN [Course] c ON ad.CourseId = c.Id 
     JOIN [Type] am ON ad.TypeId = am.Id 
    WHERE ad.IsActive = 1 AND 
    ((ISNULL(@Name, '') = '') OR (ad.Name Like '%'[email protected]+'%')) AND 
    ((@CourseIdList IS NULL) OR (ad.CourseId IN 
    (  SELECT Id 
      FROM dbo.fnIntTableFromXML(@CourseIdList) 
    ))) AND 
    ((@TypeIdList IS NULL) OR (ad.TypeId IN 
    (  SELECT Id 
      FROM dbo.fnIntTableFromXML(@TypeIdList) 
    ))) 

END 

Db.Model.Context.cs

public virtual ObjectResult<spTestSearch_Result> spTestSearch(string Name, string courseIdList, string TypeIdList) 
{ 
    var NameParameter = Name != null ? 
     new ObjectParameter("Name", Name) : 
     new ObjectParameter("Name", typeof(string)); 

    var CourseIdListParameter = courseIdList != null ? 
     new ObjectParameter("CourseIdList", courseIdList) : 
     new ObjectParameter("CourseIdList", typeof(string)); 

    var TypeIdListParameter = TypeIdList != null ? 
     new ObjectParameter("TypeIdList", TypeIdList) : 
     new ObjectParameter("TypeIdList", typeof(string)); 


    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<spTestSearch_Result>("spTestSearch", NameParameter, CourseIdListParameter, TypeIdListParameter); 
} 
+1

Какой у вас dbms? (Этот код специфичен для продукта.) – jarlh

ответ

2

Проблема может быть, потому что вы извлекаете все поля всех таблиц в хранимой процедуре и это Безразлично 't получить поле, которое соответствует члену объекта TestSearch_Result, в этом случае это будет «Метод».

+0

Вы совершенно правы, что было проблемой! Теперь я знаю, что неправильно использовать «Выбрать» для хранимой процедуры. Plz дает мой пост upvote. Ваше понимание огромно! – RyeGuy

 Смежные вопросы

  • Нет связанных вопросов^_^