J'ai un problème avec Linq et ObservableCollections dans mon application WPF.Linq et ObservableCollection
Contexte du problème:
J'ai créé une base de données SQL très simple avec deux tables: l'utilisateur et BankAccounts. La table utilisateur a une relation un-à-plusieurs avec la table BankAccounts. Ensuite, j'ai créé des dataclasses Linq-to-SQL, ce qui a bien fonctionné ==> l'assosiation entre les deux tables a également été détectée.
Ensuite, j'ai créé une fonction pour récupérer tous les utilisateurs qui fonctionne très bien:
DataClassesDataContext dc = new DataClassesDataContext
var query = from u in dc.Users
select u;
Supposons maintenant que je veux ajouter un nouveau BankAccount à chaque utilisateur (peu probable mais quand même). je pourrais ajouter le code suivant
for each(User u in query)
{
u.BankAccounts.Add(New BankAccount());
}
Les travaux surtout bien. La propriété BankAccounts fait automatiquement partie de la classe User, en raison de l'association de la base de données et de Linq DataClasses.
Cependant, dans mon application, j'ajoute d'abord les résultats de la requête à une ObservableCollection. Par la présente, je pourrais utiliser toutes sortes de liaison de données et changenotification. Ceci est accompli par le code suivant;
ObservableCollection<User> oUsers = new ObservableCollection<User>(query);
Problème: Dans le ObservableCollection je ne peux pas anyting avec la propriété des utilisateurs, car il est maintenant de type EntitySet <>. Donc, je ne peux plus faire la déclaration suivante.
for each(User u in oUsers)
{
u.BankAccounts.Add(New BankAccount());
}
D'une certaine façon, quand queryresults sont ajoutés à une ObservableCollection Il est impossible de les propriétés acces user.BankAccounts plus. Toutefois, il est possible de lier la propriété BankAccounts à n'importe quel contrôle, comme une zone de liste, et il contient les données correctes.
Est-ce que quelqu'un maintenant comment je peux créer une observableCollction (ou une collection similaire) à partir de laquelle je peux accéder à ces propriétés "assosiées"? Je suis vraiment impatient de trouver une solution.
Merci d'avance! Meilleures salutations,
Bas Zweeris E: [email protected]