2009-08-10 9 views
1

J'essaie d'insérer un enregistrement standard dans ma base de données en utilisant linq2db, mais je continue à voir des exemples à ADD méthode que je ne semble pas avoir ... ce que j'ai actuellement est le suivant, comme vous pouvez le voir, j'ai mon datacontext .... (pas de méthode add) ... la classe Reservation est une classe séparée que j'ai créée en tant que DTO - je présume que c'est correct?Insérer un enregistrement dans db en utilisant linq2sql/datacontext

Toute aide vraiment apprécié,

public bool AddReservation(Reservation reservation) 
    { 
     bool success = false; 
     try 
     { 
      MiningDataContext db = new MiningDataContext(); 


      db.Reservations. // NO ADD HERE 


     } 
     catch { } 

     return success; 
    } 

Répondre

5

Vous devez utiliser la méthode InsertOnSubmit(), puis appelez SubmitChanges().

public bool AddReservation(Reservation reservation) 
{ 
    bool success = false; 
    try 
    { 
     MiningDataContext db = new MiningDataContext(); 

     db.Reservations.InsertOnSubmit(reservation); 
     db.SubmitChanges(); 

     ... 

    } 
    catch { } 

    return success; 
} 
+0

Merci .. oui c'est là .. 1 question cependant ... InsertOnSubmit prend un type de réservation ... cela ne peut pas être ma réservation DTO comme je l'ai créé séparément (c'est un dto) ... donc je présume que je dois faire une sorte de cartographie ??? J'ai essayé de changer l'espace de noms des classes d'entités mais je n'arrive pas à différencier la réservation "MY" et la réservation de classe d'entité –

+0

Eh bien, le contexte de données (MiningDatacontext) attend un objet de la classe Reservation généré par LINQ to SQL. Je suppose que vous avez un fichier DBML dans lequel vous avez mappé votre table de réservation? La sortie de cela est à la fois le DataContext et les classes d'entité. Vous pouvez choisir l'espace de noms pour ces classes dans la vue des propriétés lorsque le concepteur DBML est ouvert. – Ostemar

+0

Oui, c'est vrai! Je viens de confirmer que j'utilisais un outil T4 pour générer mes DTOs qui supprime en fait les trucs Linq2sql générés mais les dtos générés sont exactement les mêmes dans un fichier séparé ... Donc je dois passer la réservation DTO et ça marche ... Merci pour la confirmation .. très apprécié –

1

essayer

db.Reservations.InsertOnSubmit(reservation); 
db.SubmitChanges(); 
+0

Merci .. mais quel type est la réservation .. il indique "réservation", bien sûr, j'ai créé une "réservation" dto mais comment linq2sql le sait-il? Je suppose qu'il parle d'une entité appelée Réservation mais je n'arrive pas à la trouver, dans quel espace de noms est-ce? –

+0

et plus au point, et si je n'ai pas le DTO? ... je suis sûr que je ne peux rien passer ici ?? ... ou puis-je passer quelque chose qui a les mêmes "noms de champs" que les propriétés? –

+0

Je ne suis pas sûr que comprendre votre question, mais va essayer de répondre, il est généré automatiquement des classes, LINQ2SQL génère ces classes pour vous –

0

Au lieu de faire db.Reservations.Add, faites simplement Reservations.Add. Ensuite, utilisez les db.SubmitChanges()

0

MyBee vous avez des erreurs de compilation dans cette classe qui a été à l'origine du IntelliSense pour briser je vous suggère de compiler toute la solution

de toute façon, il devrait être fonction InsertOnSubmit

Questions connexes