Платформа Entity, на которой выполняются sprocs и собственные запросы производительности - PullRequest
2 голосов
/ 15 марта 2011

Мне интересно, есть ли снижение производительности при выполнении следующих действий с использованием простого старого ado.net DataReader и DataTable:

using(DBEntities dbEntities = new dbEntities)
{
    ObjectResult<tblCustomers> customers =
        dbEntities.ExecuteStoreQuery<tblCustomers>("SELECT name,id FROM tblCustomers");
}

Я также хотел бы запускать sprocs с использованием dbEntity.

Я упоминаю об этом, потому что я разрабатываю высокочувствительное приложение, но все же хотел бы использовать инфраструктуру сущностей.

Более того, кто-нибудь может подсказать мне о недавних тестах производительности linq для скомпилированных запросов сущностей в .net4.0?

РЕДАКТИРОВАТЬ
Если я перейду на ado.net, я планирую вставить результаты, полученные из каждой строки, в объект .net вручную.Так что это Entity Framework storequery / sproc против ado.net +, создающий и вставляющий данные в объект .net вручную.

1 Ответ

2 голосов
/ 15 марта 2011

Да, конечно - это подход более высокого уровня, чем простой ADO.NET / SQL.

Вы отправляете SQL-запрос и получаете список tblCustomers объектов. Где-то вдоль линии произойдет сопоставление строки / столбца базы данных с объектом, и это займет некоторое время.

С другой стороны - если вы хотите сделать то же самое самостоятельно, вам также придется заплатить штраф за производительность - или вы просто используете строку / столбец старого стиля для своей работы ( не рекомендуется!).

Это классический компромисс между удобством и производительностью - что для вас важнее? Возможность программировать с хорошими объектами C # и их свойствами и быть очень продуктивным как программист - или несколько наносекунд на SELECT из вашей базы данных? Это ваш выбор ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...