Scénario simple
[ClientTable]: ClientId, ClientName, Phone, Age [CityTable]: CityID, CityName, Country [ClientCityTable]: ClientCityID, ClientID, CityID Client client = new Client("John", 123456789, 40); City city = new City("NY", USA); ClientCity clientCity = new ClientCity(client, city);
Devrais-je créer InsertOnSubmit sur chaque object (table) ou uniquement sur clientCity? Ou ce n’est pas grave? Où est la différence?
MODIFIER
Je demande si je devrais faire
DatabaseDC dc = new DatabaseDC(connectionSsortingng); dc.Client.InsertOnSubmit(client); dc.City.InsertOnSubmit(city); dc.ClientCity.InsertOnSubmit(clientCity); dc.SubmitChanges();
ou seulement
DatabaseDC dc = new DatabaseDC(connectionSsortingng); dc.ClientCity.InsertOnSubmit(clientCity);//because this object has references to client and city dc.SubmitChanges();
?
EDIT 2
J’ai fait quelques tentatives et même si j’utilise InsertOnSubmit
uniquement sur le client
, les entrées sont également insérées dans City
et ClientCity
. Comment dois-je le faire correctement?
En règle générale, vous devez vous assurer que les tables liées existent avant l’insertion, sinon vous risquez d’obtenir une erreur (cela dépend si vous avez contraint vos tables SQL).
Vous pouvez également créer des appels de procédure stockée personnalisés pour les insertions et les mises à jour. Ces procédures pourraient assurer que les tables liées sont correctes.
IMHO linq-to-sql est bon pour faire des sélections compliquées mais pas si facile à utiliser pour mettre à jour la firebase database. (Je l’ai souvent vu créer de sérieux goulots d’étranglement au niveau des performances.)
Du résultat, ce n’est vraiment pas grave. Les deux voies sont correctes.
Avantages de la seconde (une seule insertion à soumettre)
Avantage du premier
Comme vous l’avez déjà découvert, le résultat est le même.