2010-08-26 12 views
1

j'ai 3 tables dans ma base de données et j'ai créé un modèle d'entité de base de données et il ressemble à ceci: alt textADO.NET Entity - Besoin d'aide

ce que im essayant de faire est de lier les 3 tables à datagridview et im en utilisant une requête comme ceci

var result = from t in db.Transactions 
        from c in db.Categories 
        from a in db.Accounts 
        where t.FkCategoryID == c.CategoryID && t.FkAccountID == a.AccountID 
        select new { t.Description, t.BankReference, t.TransactionDate, c.CategoryName, a.AccountName, a.AccountNr }; 

cela fonctionne bien. Mais je dois être en mesure de mettre à jour la table des transactions en utilisant la barre d'outils du navigateur de liaison

alt text

je ne suis pas en mesure de le faire en utilisant la requête LINQ et liant à gridview.

Existe-t-il un moyen d'y parvenir en utilisant l'infrastructure de l'entité? Je veux dire quand je lie une seule table pour lier la source im capable d'utiliser cette barre d'outils pour supprimer la mise à jour et ajouter la ligne mais je dois montrer toutes les tables et ne pouvoir modifier la table des transactions

Merci à l'avance

Répondre

0

Une suggestion consiste à créer une vue de base de données pour votre requête et à la mapper à celle-ci au lieu des tables jointes.

+0

J'ai essayé, le fait est que la vue que j'ai créée n'est pas modifiable. est-il possible de le mettre à jour dans mon cas? – ilkin

+0

Vous devriez être en mesure de mettre à jour les vues dans SQL Server - quel DB utilisez-vous? Cela dit, je n'ai jamais essayé de cartographier une vue aux entités. –

+0

J'utilise mssql – ilkin

0

I ne pense pas que ce soit possible parce que vous choisissez le type de l'union. Les enregistrements dans la grille ne sont donc pas liés à votre modèle d'entité. Vous devez gérer la suppression et la mise à jour des enregistrements par vous-mêmes.