Question

J'aime beaucoup Entity Framework, mais certains éléments clés me posent problème. Quelqu'un peut-il me dire comment filtrer un EntityDataSource sur une colonne Association? EF cache les valeurs FK et possède à la place une propriété Association. Étant donné une entité, une personne et une association de types de personnes, je m'attendrais à ce que cela fonctionne si je veux filtrer mon entité de personne par type:

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

ou

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

ou même

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

mais aucun de ceux-ci ne fonctionne. Quelqu'un sait comment faire cela?

Était-ce utile?

La solution

Je pense que la réponse à votre question implique l'utilisation de la méthode Include, telle que:

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

Autres conseils

Avez-vous essayé d’appliquer le filtre en mémoire avec LINQ? (ou peut-être contre la base de données?)

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

Je dois admettre que je n’ai rien fait de tel, mais j’ai utilisé cette astuce pour mettre à jour / créer une entité sans charger d’abord les entités associées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top