Asp.net Entity Framework и проблема сгенерированного SQL - PullRequest
1 голос
/ 01 декабря 2008

У меня проблема со следующим запросом Linq с использованием Entity Framework:

from o in ctx.Entity
where o.EntityID = entityid
select o;

Достаточно просто, верно? Ну, набор Entity является родительским классом для множества других классов. Сгенерированный SQL для этого простого запроса содержит около 20 тыс. Символов с множеством слов 'case' и 'union'. Помимо того, что фреймворк требует времени для компиляции запроса, он также требует времени для выполнения.

Так, как я могу улучшить SQL, сгенерированный платформой в случае запросов, использующих классы с наследием? Или какой другой метод я могу использовать, чтобы избежать этой проблемы?

AD

1 Ответ

1 голос
/ 01 декабря 2008

Причина, по которой он это делает, заключается в связи сущности с другими таблицами в вашей базе данных. Чтобы сократить это, вам нужно прочитать о том, как лучше контролировать явную / ленивую загрузку ссылок, которую EF делает для вас

http://blogs.msdn.com/jkowalski/archive/2008/05/12/transparent-lazy-loading-for-entity-framework-part-1.aspx

Ни один пост, подобный этому, не был бы полным без плагина для nhibernate, который более мощный / надежный / производительный / и более простой в использовании ;-), но, надеюсь, эта ссылка поможет вам

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