VB.Net: Verwenden einer Objektdatenquelle in einem Bericht (.rdlc)

Meine Frage ist ähnlich wiediese aber ich habe einige Probleme mit der tatsächlichen Implementierung.

Ich habe einen Bericht (.rdlc) in der Business-Schicht einer 3-Tier-App.

Ich habe ein Objekt in der BL EmployeeManager) mit einemGetEmployees(Expression as Expression(Of Func(Of Employee, Boolean))) As IQueryable(Of Employee) Methode

Da ich nicht versuchen wollte, ein Lambda direkt einzugeben (zumindest nicht, bis etwas funktioniert), habe ich ein @ erstellReportData Klasse in der BL, die das @ umschlieGetEmployees() call und macht die Ergebnisse als IEnumerable (Of Employee) verfügbar - was sehr einfach sein sollte. Es hat im Moment noch nicht einmal Parameter.

Ok ... In meinem Bericht habe ich versucht, eine neue Datenquelle hinzuzufügen. Ich habe eine Art von @ ausgewähObject und fand dasReportData Klasse oben erwähnt. Der Assistent wird abgeschlossen und fügt dem Projekt einen DataSources-Ordner hinzu, in dem XML-Code enthalten ist, der ein @ definier<GenericObjectDataSource> und zeigt auf dasReport Klasse.

ReportData wird auch im Bereich Datenquellen angezeigt - Es ist ein @ vorhande> daneben aber wenn ich es erweitere, hat es keine Kinder.

Was ich nicht weiß, wie es geht, ist die Datenquelle zu VERWENDEN - Es scheint keine Methoden / Mitglieder verfügbar zu machen (ich habe nicht einmal angegeben, dass es @ aufrufen solGetEmployees() noch nicht!) und ich kann auf keinen Fall ein @ sehIEnumerable(Of Employee) irgendwo

Wenn ich versuche, dem Bericht eine Tabelle hinzuzufügen, und ich aufgefordert werde, einen Datensatz auszuwählen, wird die ReportData-Datenquelle nicht in der Dropdown-Liste Datenquelle angezeigt.

Was vermisse ich? Kann mich bitte jemand in die richtige Richtung weisen?

Mein einfaches ReportData-Objekt:

Namespace Reports
    Public Class ReportData

        Private Property EmployeeManager As Interfaces.IEmployeeManager

        Public Sub New()
            ''This sub is here in case it's an instantiation problem - I intend to use dependency injection when I've got this working properly.
            Me.EmployeeManager = New EmployeeManager
        End Sub

        Public Sub New(ByVal EmployeeManager As Interfaces.IEmployeeManager)
            Me.EmployeeManager = EmployeeManager
        End Sub

        Public Function GetEmployees() As IEnumerable(Of Employee)
            Return EmployeeManager.GetEmployees()
        End Function
    End Class
End Namespace

Ich habe auch @ gefundDie was darauf hindeutet, dass ich die richtigen Schritte befolge, aber die Eigenschaften nicht wie erwartet angezeigt werden

Die öffentlichen Eigenschaften der Klasse werden jetzt im Fenster "Datenquellen" angezeigt, in dem sie per Drag & Drop in den Bericht gezogen werden können.

Das passiert nicht - die Eigenschaften erscheinen nie

BEARBEITE: Wie von Alex darauf hingewiesen, muss ich @ verwendEigenschafte nicht irgendwelche Methoden. Weitere Informationen finden Sie in der Antwort von Alex Esselfie. Das hat mein Problem immer noch nicht gelöst, hat mich aber einen Schritt näher gebracht ...

Antworten auf die Frage(4)

Ihre Antwort auf die Frage