Announcement

Collapse
No announcement yet.

WCF Data Service - Query Filter im Vorfeld abfangen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • WCF Data Service - Query Filter im Vorfeld abfangen

    Hi,

    ich bin relativ neu sowohl in WCF Data Services als auch hier im Forum - aber über die Suche habe ich nichts entsprechendes gefunden, also hier die entsprechende Frage... Ich habe einen "simplen" WCF Data Service, der Datenauflistungen zurück gibt, die wiederum von einem beliebigen anderen Service bereitgestellt werden. Dieser weitere Service kann als BlackBox bezeichnet werden:
    Code:
     public class MyDSContext
        {
            public externerDienstDummy = new MyExternerDienstDummy()
            
            public IQueryable<MeinTyp> Ergebnis
            {
                get
                {
                    return externerDienstDummy.BeliebigeListe.AsQueryable<MeinTyp>();
                }
            }
    }

    Der Datendienst selbst ist dann in etwa definiert:
    Code:
    	public class MyDataService: DataService<MyContext>
    	{
    		public static void InitializeService(DataServiceConfiguration config)
    		{
    			...		}
    	}
    Dieser Code existiert nicht, wenn Euch also Fehler auffallen, ignoriert sie mal , es geht nur ums Prinzip. So funktioniert das bereits.

    So nun zur eigentlichen Frage: Zurück zu folgendem Code:
    Code:
     public IQueryable<MeinTyp> Ergebnis
            {
                get
                {
                    // an dieser Stelle benötige ich eigentlich schon den an den
                    // Datendienst übergebenen Filter - warum, bitte unten weiterlesen
                    return externerDienstDummy.BeliebigeListe.AsQueryable<MeinTyp>();
                }
            }
    Ich frage jetzt über Browser oder beliebiges Client-Tool die "Liste" aus dem externen Dienst ab. Diese Anfragen können natürlich OData-konform gefiltert sein. Das funktioniert ja bereits an sich prima.. Mir gefällt aber überhaupt nicht, dass immer erst mal die komplette Liste aus dem externen Dienst abgerufen wird. Erst der Wcf Data Service scheint die Filterung auf die dann zur Verfügung stehende "Ergebnis"-IQueryable anzuwenden. Ideal wäre es doch, wenn die Filter-Query schon auf den externen Dienst angewendet werden könnte. Die technische Möglichkeit besteht. Dafür müsste ich aber irgendwie wissen, wie die Abfrage an den WCF Data Service aussieht, und zwar an der im Quellcode markierten Stelle...

    Weiß jemand wie ich dem Problem begegnen kann? Habt Ihr das Anliegen denn verstanden ?

    Jörg

  • #2
    Hallo und willkommen im Forum,

    welchen Rückgabetyp hat der externe Dienst? Sonst ist es verständlich.

    Genau kenn ich mich bei diesem Thema nicht aus, aber QueryInterceptor sollte ein Stichwort sein mit dem das möglich ist.


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment

    Working...
    X