¿Cómo obtendré el número de identificación de clave principal de una Tabla sin haciendo un segundo viaje a la base de datos en LINQ To SQL?¿Cómo obtener la clave primaria de una tabla sin hacer un segundo viaje?
En este momento, envío los datos a una tabla, y realizo otro viaje para descubrir qué ID se asignó al nuevo campo (en un campo de ID de incremento automático). Quiero hacer esto en LINQ To SQL y no en Raw SQL (ya no uso Raw SQL).
Además, la segunda parte de mi pregunta es: siempre tengo cuidado de conocer el ID de un usuario que está en línea porque prefiero llamar su información en varias tablas usando su ID en lugar de usar un GUID o un nombre de usuario. que son todas cadenas largas. Lo hago porque creo que SQL Server haciendo una comparación numérica es mucho (?) Más eficiente que hacer un nombre de usuario (cadena) o incluso un guid (cadena muy larga) comparar. Mi pregunta es, ¿estoy más preocupado de lo que debería estar? ¿Vale la pena mantener siempre el ID de usuario (int32) en estado de sesión?
@RedFilter proporciona algunas pistas interesantes/prometedores para la primera pregunta, porque estoy en esta etapa no puede probarlos, si alguien sabe o puede confirmar estos cambios que se recomienda en la sección de comentarios de su respuesta?
no sé cómo escribir procedimientos sql en sql lang. pero si pudiera estar bastante seguro de que linq puede mapear los procedimientos almacenados sql en su diseñador de archivos .dbml, entonces debería poder obtener valores de retorno, probablemente solo si hace todo el INSERT usando t-sql ... de lo contrario no estoy seguro también. –
No creo InsertOnSubmit o Enviar como un valor de retorno que sea relevante para nuestras necesidades. –