una tablas soporta segundo rapida porque por optimizar mas lentas las hacer dañan cuantas consultas consulta con como c# sql linq-to-sql many-to-many insertonsubmit

c# - tablas - optimizar consultas lentas mysql



Insertar en tablas de relación de muchos a muchos (2)

Escenario 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);

¿Debo hacer InsertOnSubmit en cada objeto (tabla) o solo en clientCity? ¿O no importa? ¿Dónde está la diferencia?

EDITAR

Me pregunto si debería hacer

DatabaseDC dc = new DatabaseDC(connectionString); dc.Client.InsertOnSubmit(client); dc.City.InsertOnSubmit(city); dc.ClientCity.InsertOnSubmit(clientCity); dc.SubmitChanges();

o solo

DatabaseDC dc = new DatabaseDC(connectionString); dc.ClientCity.InsertOnSubmit(clientCity);//because this object has references to client and city dc.SubmitChanges();

?

EDIT 2

Hice algunos intentos e incluso si uso InsertOnSubmit solo en el client , las entradas se insertan también en City y ClientCity . ¿Cómo debería hacerlo correctamente?


Normalmente, debe asegurarse de que las tablas vinculadas existen antes de la inserción o puede obtener un error (depende de si ha restringido sus tablas sql).

También puede crear llamadas a procedimientos almacenados personalizados para las inserciones y actualizaciones, estos procedimientos podrían asegurar que las tablas vinculadas sean correctas.

IMHO linq-to-sql es bueno para hacer selecciones complicadas pero no tan fácil de usar para actualizar la base de datos. (A menudo lo he visto crear serios cuellos de botella de rendimiento).


Por el resultado, realmente no importa. Ambas formas son correctas.

Ventajas del segundo (solo una inserción)

  • limpiador
  • menos código

Ventaja del primero

  • para las personas que son nuevas en Linq2sql, es más fácil de leer / comprender
  • también si no hay referencias correctas, se realizará un inserto (¿o es una desventaja ?, depende de usted)

Como ya descubriste, el resultado es el mismo.