Simple scenario
[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);
Should I make InsertOnSubmit on every object(table) or only on clientCity? Or it doesn't matter? Where's the difference?
EDIT
I'ms asking if should I make
DatabaseDC dc = new DatabaseDC(connectionString);
dc.Client.InsertOnSubmit(client);
dc.City.InsertOnSubmit(city);
dc.ClientCity.InsertOnSubmit(clientCity);
dc.SubmitChanges();
or only
DatabaseDC dc = new DatabaseDC(connectionString);
dc.ClientCity.InsertOnSubmit(clientCity);//because this object has references to client and city
dc.SubmitChanges();
?
EDIT 2
I made a few attempts and even of I use InsertOnSubmit
only on client
, entries are inserted also to City
and ClientCity
. How should I do it correctly?
Typically you have to insure that the linked tables exist before the insert or you may get an error (depends if you have constrained your sql tables).
You can also create custom stored procedure calls for the inserts and updates, these procedures could insure the linked tables are correct.
IMHO linq-to-sql is good for making complicated selections but not so easy to use for updating the database. (Often I've seen it create serious performance bottlenecks.)