2009-12-08 11 views
2

J'utilise Entity Framework 4.0 et j'ai besoin de préfiltrer toutes les requêtes en utilisant TennantId. J'ai modifié le template T4 pour ajouter un pré-filtre à tous les ObjectSets comme ça et cela fonctionne pour la partie "régulière" de l'application.Comment effectuer un pré-filtrage côté serveur avec Entity Framework et Dynamic Data?

public ObjectSet<Category> Categories 
{ 
    get 
    { 
     if ((_Categories == null)) 
     { 
      _Categories = base.CreateObjectSet<Category>("Categories"); 
      _Categories = _Categories.Where("it.TenantId = 10"); 
     } 
     return _Categories; 
    } 
} 

Le problème est que je ASP.NET Dynamic Data n'invoque pas ces méthodes et va directement à CreateQuery que je ne peux pas passer outre.

Est-il possible de préfiltrer des données dans ce scénario?

Répondre

1

Vous pouvez définir une condition pour chaque entité dans votre Edm et EF ajoutera automatiquement cette condition dans le « where » de toutes les requêtes qu'il génère. Voir ma réponse à here qui pourrait vous aider.