Entity Developer 및 모델 정의 함수에 문제가 있습니다. Ealier Entity Developer는 데이터베이스 기능을 지원하지 않기 때문에 저장 프로 시저로 함수를 매핑했습니다. 이 topic from devart forum에 언급 된 솔루션을 사용하고있었습니다. 하지만 엔티티에 대한 더 큰 select 문의 부분으로 Linq
쿼리에서 사용할 수 없기 때문에 지금은 사용하지 않습니다.Entity Framework 6에서 데이터베이스 모델의 매핑 된 함수를 인식하지 못합니다.
나는 this과 같은 기능을 추가하려고 시도하고 있는데, 그것은 here으로 언급되어 있습니다. 그러나 나는이 예외를 얻고있다
는 다음과 같이 생성됩니다추가 정보 : 엔티티에 LINQ는 방법 '선택 System.Nullable
1[System.Int32] EwBlobIleWyst(System.String, System.Nullable
를 인식하지 못하는 1 [선택 System.Int32, 선택 System.String, System.Nullable`1 [선택 System.Int32]) '메서드를 호출하고이 메서드는 저장소 식으로 변환 할 수 없습니다. SSDL 파일 기능에서
<Function Name="EW_BLOB_ILE_WYST" IsComposable="true" ReturnType="decimal" BuiltIn="false" Aggregate="false" NiladicFunction="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="EWID4" StoreFunctionName="EW_BLOB_ILE_WYST">
<Parameter Name="OWNER" Type="VARCHAR2" Mode="In" />
<Parameter Name="OWNER_ID" Type="decimal" Mode="In" />
<Parameter Name="RODZ_DOK_IDS" Type="VARCHAR2" Mode="In" />
<Parameter Name="LICZ_PUSTE" Type="decimal" Mode="In" />
은 CSDL 파일에서이 같이 있습니다 :
<Function Name="EwBlobIleWyst" ReturnType="Collection(Int32)" ed:Guid="f544518f-1cdd-484c-92b4-73b61491dc54">
<Parameter Name="OWNER" Type="String" />
<Parameter Name="OWNER_ID" Type="Int32" />
<Parameter Name="RODZ_DOK_DS" Type="String" />
<Parameter Name="LICZ_PUSTE" Type="Int32" />
<DefiningExpression>SELECT EWID4.EW_BLOB_ILE_WYST(:OWNER, :OWNER_ID, :RODZ_DOK_IDS, :LICZ_PUSTE) FROM KDOK_WSK</DefiningExpression>
그리고 내 구현처럼 보인다 this :
[EdmFunction(@"Ewid4", @"EwBlobIleWyst")]
public virtual global::System.Nullable<int> EwBlobIleWyst(string OWNER, global::System.Nullable<int> OWNER_ID, string RODZ_DOK_IDS, global::System.Nullable<int> LICZ_PUSTE)
{
throw new NotSupportedException();
}
이 코드는 부분 컨텍스트 클래스 내에 있습니다. 는 그리고 나는이 방법으로 그것을 사용하고 있습니다 :
DokPow = ((Ewid4)context).EwBlobIleWyst("smth", 1, null, 0)
이 조각 안에 난 그냥 솔루션을 얻을 Linq에