2009-01-13 3 views
6

J'utilise Linq to SQL et j'essaie de filtrer des données à l'aide de DataOptions et AssociateWith. J'ai une table appelée Products qui a une clé primaire appelée Id et un drapeau appelé IsDeleted avec le bit sql-datatype.La sous-requête n'est pas prise en charge sur 'IsDeleted' de type 'Entities.Product'

Lorsque j'utilise le code suivant, j'obtiens "La sous-requête n'est pas prise en charge sur 'IsDeleted' de type 'Entities.Product'" exception sur la méthode AssociateWith.

var context = new DataContext(); 
DataLoadOptions options = new DataLoadOptions(); 
options.AssociateWith<Product>(p => !p.IsDeleted); 
context.LoadOptions = options; 

Des idées?

+1

Avez-vous déjà obtenir une solution pour cela car j'ai exactement le même problème – Coops

+0

Pas vraiment une réponse à la question, mais pourrait aider quelqu'un. Quand je faisais du chargement avec impatience, par erreur j'ai mis 'AssociateWith' dans mon code au lieu de' LoadWith' et j'ai fini avec la même erreur. – jahu

Répondre

1

Je crois que vous êtes seulement autorisé deux filtre sur une sous-requête d'un de un> many et ne peut utiliser un ensemble spécifique d'expressions, détaillées ici:

OrderBy
ThenBy
OrderByDescending
ThenByDescending
Prenez

(plus d'infos ici http://msdn.microsoft.com/en-us/library/bb534221.aspx)

+0

Pourquoi avez-vous dit un problème spécifique pour @Mohammadreza? – Coops

Questions connexes