J'ai une table Customer avec une clé primaire (incrément auto int) et une table d'adresses avec une clé étrangère dans la table Customer. J'essaie d'insérer les deux lignes dans la base de données dans une transaction agréable.Utilisation de Linq2Sql pour insérer des données dans plusieurs tables à l'aide d'une clé primaire auto incrémentée
using (DatabaseDataContext db = new DatabaseDataContext())
{
Customer newCustomer = new Customer()
{
Email = customer.Email
};
Address b = new Address()
{
CustomerID = newCustomer.CustomerID,
Address1 = billingAddress.Address1
};
db.Customers.InsertOnSubmit(newCustomer);
db.Addresses.InsertOnSubmit(b);
db.SubmitChanges();
}
Quand je lance ce que j'espérais que la table et adresse du client avait automatiquement les touches correctes dans la base de données car le contexte sait que c'est une clé incrémentée automatique et fera deux inserts avec la touche droite dans les deux tableaux . La seule façon de faire fonctionner ceci est de faire d'abord SubmitChanges() sur l'objet Customer puis de créer l'adresse et de faire aussi SubmitChanges(). Cela créerait deux allers-retours vers la base de données et j'aimerais voir si je peux le faire en une seule transaction. C'est possible?
Merci