2010-06-08 5 views
-1

내 사이트의 저장소에있는 내 objectcontext 개체에서 ObjectContext.ExecuteFunction을 호출하려고합니다.ExecuteFunction 메서드는 ObjectContext의 자식 클래스에서 base.ExecuteFunction을 통해서만 사용할 수 있습니까?

리포지토리는 일반적이므로 Entity Framework에서 실제로 특정 개체를 나타내는 컨테이너가 아니라 ObjectContext 개체 만 있습니다. 여기

는 ExecuteFunction 방법을 사용하는 생성 된 코드의 예 :

public class Repository<E, C> : IRepository<E, C>, IDisposable 
    where E : EntityObject 
    where C : ObjectContext 
{ 
    private readonly C _ctx; 

    // ... 

    public ObjectResult<E> ExecuteFunction(string functionName, params[]) 
    { 
     // Create object parameters 

     return _ctx.ExecuteFunction<E>(functionName, /* parameters */) 
    } 
} 

누구나 알고 ...

[global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")] 
public global::System.Data.Objects.ObjectResult<ArtistSearchVariation> FindSearchVariation(string source) 
{ 
    global::System.Data.Objects.ObjectParameter sourceParameter; 
    if ((source != null)) 
    { 
     sourceParameter = new global::System.Data.Objects.ObjectParameter("Source", source); 
    } 
    else 
    { 
     sourceParameter = new global::System.Data.Objects.ObjectParameter("Source", typeof(string)); 
    } 
    return base.ExecuteFunction<ArtistSearchVariation>("FindSearchVariation", sourceParameter); 
} 

을하지만, 내가 뭘하고 싶은 것은이 같은 이유 I 대신 ExecuteFunctionbase에서 불러야합니까?

또한 작성한 것처럼 어떤 방법으로도 처리 할 수 ​​있습니까? 나는 저장소를 일반적으로 유지하고 싶지만 저장 프로 시저를 실행하면 점점 더 어려워지고있다. ...

업데이트 : 다음은 시도한 것이고 intellisense/it에 표시되지 않는 방법이다. 나는 그것으로

public ArtistSearchVariation findSearchVariation(string source) 
{ 
    System.Data.Objects.ObjextContext _ctx = new ObjectContext(/* connection string */); 
    System.Data.Objects.ObjectParameter sourceParam = new ObjectParameter("Source", source); 

    return _ctx.ExecuteFunction<ArtistSearchVariation>("FindSearchVariation", sourceParam); 
} 

감사합니다,
매트를 컴파일 할 때 나에게 오류를 제공

당신은 base.ExecuteFunction의 ExecuteFunction 방법 (및 과부하)를 사용할 필요가 없습니다

답변

1

이 공개되지 않습니다 보호되어 있으므로 외부에서 호출 할 수 있습니다. 사이트. 그것을 부르는 데 어려움이 있습니까?

+0

예, 기능이 표시되지 않습니다. 나는 나의 질문에서 내가 시도한 것을 보여 주었다. – Matt

관련 문제