Pregunta

Estoy involucrado en el desarrollo de una aplicación en niveles que utiliza LINQ2SQL separada del servidor web con un enlace NET.TCP en WCF.

Mis preguntas son:

  1. ¿Qué tipo de medidas debo tomar? para lograr el mejor rendimiento?
  2. Dado que los objetos de entidad devueltos por el LINQ necesita ser convertido a Lista enumerable para ser serializada cada vez, hay de todos modos para eliminar esta dependencia?
¿Fue útil?

Solución

1) Concéntrese en un diseño de base de datos correctamente normalizado. Yo diría que cuando se vea forzado a hacer concesiones de diseño en su diseño de código frente a base de datos, si el desempeño es su objetivo, haga concesiones en el diseño de su objeto en lugar del diseño de su base de datos. Comprenda que no va a poder hacer un diseño adecuado de base de datos de supertipo / subtipo que funcione con Linq to SQL (me dicen que necesita usar el EF en su lugar).

2) Depende de lo que quieras decir aquí. Si está preguntando cómo serializaría las clases anónimas a través del cable, la respuesta fácil es: "no puede, así que no intente". Si desea colocar listas de objetos a través del cable, solo use el método de extensión ToArray () en sus colecciones IEnumerable para enviar las matrices de sus objetos comerciales a través del cable.

Otros consejos

Linq to SQL es muy lento a menos que compiles las consultas. De lo contrario, su aplicación estará vinculada a la CPU, ya que la mayoría del tiempo se dedicará a convertir los árboles de Expresión en SQL.

Estamos hablando de un aumento de rendimiento 10x si utiliza consultas compiladas. Pruébalo :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top