지난 며칠 동안 EF를 사용했습니다. 우리의 응용 프로그램은 SQL Anywhere 10 데이터베이스를 기반으로하며 모든 데이터 액세스는 저장 프로 시저를 통해 수행됩니다. EF는 SA 10에서 지원되지 않으므로 SA 11을 사용하여 EF를 테스트하고 있습니다. 이 목적으로 2 개의 테이블과 2 개의 저장 프로 시저로 구성된 작은 데이터베이스를 만들었습니다 (asp.net mvc 샘플의 nerddinner 데이터베이스를 기반으로합니다. here 참조) 데이터베이스, 테이블 및 저장 프로 시저에서 모델을 만들고 필요한 함수 가져 오기를 수행했습니다. 나는 다음과 같은 서명이 저장 프로 시저가 있습니다Entity Framework + Sql Anywhere 11 + 저장 프로 시저
ALTER PROCEDURE "DBA"."get_dinner"(@dinner_id integer)
BEGIN
select dinner_id, title, event_date, description, hosted_by , contact_phone, address, country, latitude, longitude
from dba.dinners d
where d.dinner_id = @dinner_id
END
을 그리고 그 결과 기능 가져 오기 코드는 다음과 같습니다
public global::System.Data.Objects.ObjectResult<dinner> get_dinner(global::System.Data.Objects.ObjectParameter dinner_id)
{
return base.ExecuteFunction<dinner>("get_dinner", dinner_id);
}
을 그리고 그게 문제입니다. 이상적으로, 코드는 지금까지 내가 볼로 대신 global::System.Data.Objects.ObjectParameter dinner_id
의, int로 매개 변수를 받아 들여야 생성의 edmx 파일이 올바르게 매개 변수 유형을 해석하는 데 필요한 모든 데이터가 있습니다
<Function Name="get_dinner" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="DBA">
<Parameter Name="dinner_id" Type="int" Mode="InOut" />
</Function>
내가 여기서 뭔가를 놓치고 있습니까? 적절한 매개 변수 유형을 사용하여 함수 가져 오기를 수행하려면 무엇이 더 필요합니까? 이것은 edmx 파일을 수정하여 수정할 수있는 것이거나 SA11 EF 지원 구현의 문제입니다.
누군가가 내게 몇 가지 단서를 줄 수 있기를 바랍니다.
감사를하는 데 도움이됩니다. edmx 파일을 수정하고 작동 여부를 확인합니다. 현재 생성 된 함수 임포트가 작동합니다. 그것은 나를 귀찮게하는 매개 변수 유형 일뿐입니다. – Gio2k
그것은 작동합니다. inout 매개 변수의 문제가 곧 해결 될 수 있기를 바랍니다. – Gio2k