0

을 사용하여 형식이 지정되지 않은 사용자 지정 데이터 서비스 공급자 을 생성하는 데 C#을 사용하고 있습니다.
필수 공급자와 인터페이스를 모두 구현했습니다.
모든 엔티티는 메타 데이터 생성 중에 만 동적으로 지정됩니다.
EDMX 또는 반사 공급자는 사용할 수 없습니다.
모든 액세스 권한이 제공됩니다.
엔터티 프레임 워크를 사용하지 않고 형식이 지정되지 않은 사용자 지정 데이터 서비스 공급자 엔터티 기반 서비스 작업

1) CustomMetaDataProvider

public bool TryResolveResourceType(string name, out ResourceType resourceType) 
{ 
    return this.resourceTypes.TryGetValue(name, out resourceType); 
} 
public bool TryResolveServiceOperation(string name, out ServiceOperation serviceOperation) 
{ 
    if (serviceOperations.TryGetValue(name, out serviceOperation)) 
    { 
     serviceOperation.SetReadOnly(); 
     return true; 
    } 
    else 
    { 
     serviceOperation = null; 
     return false; 
    }    
} 

2) CustomDataQueryProvider

public object InvokeServiceOperation(ServiceOperation serviceOperation, object[] parameters) 
{ 
//Invoke the method present in ServiceOperation 
} 

나는 다음과 같은 URL을
HTTP를 제공하는 경우 : // localhost를/SampleService.svc/TestEntity (1)/ID>
id 값을 가져올 수 있습니다. 나는 URL을
HTTP를 사용하여 서비스를 호출 할 때

: // localhost를/SampleService.svc/TestServiceOperation
을 나는 서비스 조작을 호출 할 수 있어요.

하지만 Serv.Op.를 호출하려고 할 때. 엔티티를 지정한 후, 나는 오류
HTTP를 얻을 : // localhost를/SampleService.svc/TestEntity/TestServiceOperation

내가이 URL을 사용하는 경우, 그것은 해당 TestEntityResourceSet,
다음 이름 = TestServiceOperation으로 ResourceType에를 찾아 간다 발견 .
그러나 TestServiceOperation에는 리소스 유형이 없습니다. TryResolveServiceOperation에서 해당 SO 이름으로 검색해야합니다.

그물에서 검색 한 모든 예는 Ser.Op. .svc/SO 유형 다음.
각 엔티티에 대해 개별적으로 서비스 작업을 호출해야합니다.

같은

에 http : // localhostTest.svc/Entity1/SerOp1 에 http : // localhostTest.svc/Entity2/SerOp2

이 작업을 수행하는 방법의 모든 좋은 예? 감사.

답변

0

EntityType에 바인딩 된 작업을 찾고있는 것처럼 보입니다. 참조 10.4.1. 자세한 내용은OData V3.0 Procotol에있는 작업을 참조하십시오.