LINQ Benchmarks в многоуровневой среде - PullRequest
0 голосов
/ 05 октября 2008

Я занимаюсь разработкой многоуровневого приложения, использующего LINQ2SQL, отделенного от веб-сервера связыванием NET.TCP на WCF.

Мои вопросы:

  1. Какие меры я должен предпринять добиться максимальной производительности?
  2. Поскольку объекты-сущности возвращаются LINQ должен быть преобразован в IEnumerable список для сериализации есть ли в любом случае удалить эта зависимость?

Ответы [ 2 ]

1 голос
/ 11 октября 2008

1) Сконцентрируйтесь на правильно нормированном дизайне базы данных. Я бы сказал, что когда вы вынуждены делать компромиссные решения в своем коде по сравнению с дизайном базы данных, если производительность - ваша цель, сделайте компромисс в своем объектном дизайне вместо вашего дизайна базы данных. Поймите, что вы не сможете создать правильный дизайн базы данных супертипов / подтипов, который будет работать с Linq to SQL (мне сказали, что вместо этого вам нужно использовать EF).

2) Зависит от того, что вы имеете в виду здесь. Если вы спрашиваете, как бы вы сериализовали анонимные классы по сети, простой ответ: «вы не можете, поэтому не пытайтесь». Если вы хотите разместить списки объектов по сети, просто используйте метод расширения ToArray () в своих коллекциях IEnumerable, чтобы передавать массивы ваших бизнес-объектов по сети.

0 голосов
/ 10 декабря 2008

Linq to SQL работает очень медленно, если вы не компилируете запросы. В противном случае ваше приложение будет связано с процессором, так как большую часть времени будет тратить на преобразование деревьев выражений в SQL.

Мы говорим о 10-кратном увеличении производительности, если вы используете скомпилированные запросы. Попробуйте:)

...