2009-04-16 6 views
0

Je commence sur un projet de petites fenêtres qui utilise largement les grilles modifiables. Je veux utiliser Linq pour les entités, mais s'il est trivial de lier une grille à la requête Linq, elle est en lecture seule. Je ne pouvais pas trouver un bon moyen d'avoir une grille modifiable qui met à jour automatiquement la base de données. (J'ai piraté un work-around où je copie les données dans un ensemble de données pour l'affichage/mise à jour et traduisons ... laid!)Linq to Entities Vs. Adaptateurs de table (Windows Forms Windows)

Donc pour l'instant j'ai décidé d'oublier Linq aux entités et utiliser l'ancien adaptateur de table/dataset méthode de 2.0.

Y a-t-il une raison impérieuse pour laquelle je devrais utiliser Linq to Entities à la place? Existe-t-il un moyen de faire des grilles modifiables que j'ai manqué?

Répondre

1

Trouvé la solution: utiliser des expressions lambda pour filtrer l'entité, puis lier directement à l'entité. Fonctionne très bien.

2

Vous pouvez simplement lier une collection d'entités renvoyée par une requête à un contrôle et cela permettra d'éditer les entités liées. Peut-être que vous devez insérer un BindingSource entre la collecte et le contrôle, mais cela dépend. Si vous appelez SaveChanges() sur le contexte de l'objet, les modifications sont conservées dans la base de données. Ainsi, la liaison de données avec Entity Framework fonctionne définitivement.

+0

Pour une raison quelconque, j'essaie d'obtenir une grille en lecture seule. Peut-être que c'est le contrôle de grille Infragistics que j'utilise? – Jeff

+1

Je ne peux pas dire si c'est un problème avec ce contrôle. Essayez-le simplement avec un DataGridView - cela fonctionne sans trucs. –

+0

Merci. J'ai trouvé que je liais à un résultat de requête, pas l'entité elle-même. Ainsi, la lecture seulement. Je vais donner à linq un autre coup de feu. – Jeff