2009-06-13 4 views
1

ADO.NET Entity Framework에서 오류없이 저장 프로 시저를 호출하려면 어떻게해야합니까? 나는 아래의 코드를 사용하는 경우, 오류가 발생합니다 :ADO.NET Entity Framework에서 오류없이 저장 프로 시저를 호출하는 방법?

adminNameContext.AddItemCategory(12, "ggf", DateTime.Now); 

오류 :

데이터 독자가 지정한 'NetTanitimTestModel.Categories'와 호환되지 않습니다. 'ID'유형의 멤버에는 데이터 판독기에 동일한 이름의 해당 열이 없습니다. PARENTID, 종류, 날짜

+1

오류는 모두를 말한다 : 당신이없는 결과 집합 ('ID')의 열을 참조하려고 ... –

+0

는 저장 프로 시저 (T-SQL 모습을 우리에게 보여줍니다 코드)를 실행하고 어떤 테이블 (테이블 구조)이 실행되는지 –

+0

marc_s; 나는 내 질문을 새롭게했다. 다시 보아주세요 :) – Penguen

답변

0

EF 데이터 모델과 데이터베이스가 더 이상 동기화되지 않은 것으로 보입니다. EF 데이터 모델의 "Categories"개체에 "ID"필드가 있지만 테이블에없는 것처럼 보입니다.

데이터베이스에서 EF 데이터 모델을 업데이트하고 문제가 해결되는지 확인합니다. 이렇게하려면 EDMX 디자이너를 열고 디자인 화면의 빈 곳을 마우스 오른쪽 단추로 클릭하고 "데이터베이스에서 모델 업데이트"옵션을 선택하십시오. 그것은 두 세계를 다시 동기화시켜야합니다.

마크

+0

marc_s 결과는 이전과 같습니다 ... – Penguen

+0

EF 데이터 모델의 "Categories"개체에는 어떤 필드가 있습니까? –

0

미치 밀 당신에게 대답을했다 :

ALTER procedure [dbo].[sp_AddItemCategory] 
( 
    @item int, 
    @category nvarchar(50), 
    @date smalldatetime 
) 
as 
begin 
    if(@item=-1) 
    begin 
    insert into Categories(PARENTID,Category,Date) values(null,@category,@date) 
    end 
    else 
    begin 
    insert into Categories(PARENTID,Category,Date) values(@item,@category,@date) 
    end 
end 
i는 카테고리 3 열을 가지고있다 테이블이 있습니다. ID 열을 사용하려하지만 테이블에 PARENTID 열이 있습니다.