Вопрос

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

Мои вопросы:

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

    Решение

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

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

    Другие советы

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top