Frage

Ich mag Entity Framework, aber es gibt einige wichtige Stücke, die eine Herausforderung für mich sind. Kann mir jemand sagen, wie man eine EntityDataSource über einen Assoziations Spalt filtern? EF blendet die Werte FK und stattdessen eine Vereinigung Eigenschaft hat. In Anbetracht eine Entität, Person, mit einem person Verein, würde ich so etwas wie dies erwartet hat zu arbeiten, wenn ich will nach Typ meiner Person Entity filtern:

GridDataSource.EntityTypeFilter = "it.PersonType.PersonTypeID = 1";

oder

GridDataSource.Where = "it.PersonType.PersonTypeID = '1'";

oder auch

GridDataSource.WhereParameters.Add(new Parameter("it.PersonType.PersonTypeID", DbType.Object, "1"));

aber keiner der Arbeit. Jeder weiß, wie dies zu tun?

War es hilfreich?

Lösung

Ich denke, die Antwort Sie suchen beinhaltet das Include-Verfahren, wie zum Beispiel:

entities.it.Include("PersonType").Where(a => a.PersonType.PersonTypeID = '1');

Andere Tipps

Haben Sie versucht, die Filter im Speicher der Anwendung mithilfe von LINQ? (Oder vielleicht für die Datenbank?)

var personType = new PersonType { Id = 1 };
var query = PersonDataSource.Where(p => p.PersonType.Equals(personType));
// use this query as the DataSource for your GridView

Ich muss zugeben, ich habe nichts dergleichen getan, aber ich habe diesen Trick verwendet, um eine Einheit zu aktualisieren / erstellen, ohne zuvor die zugehörigen Einheiten geladen werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top