Большая база данных - это всегда нечто особенное. Любая технология имеет свои плюсы и минусы при работе с большой базой данных.
Проблема, с которой вы столкнулись, наиболее вероятно связана с построением модели. Когда вы запускаете приложение и используете материал, связанный с EF, в первый раз, EF должен построить описание модели и скомпилировать его - это самая трудоемкая операция, которую вы можете найти в EF. Сложность этой операции возрастает с увеличением количества объектов в модели. После того как модель скомпилирована, она используется повторно в течение всего времени жизни приложения (если вы перезапустите приложение или выгрузите домен приложения, модель должна быть скомпилирована заново). Вы можете избежать этого, предварительно скомпилировав модель. Это делается во время разработки, когда вы используете какой-то инструмент для генерации кода из модели и включаете этот код в свой проект (это нужно делать снова после каждого изменения в модели). Для моделей на основе EDMX вы можете использовать EdmGen.exe для создания представлений, а для моделей на основе кода вы можете использовать EF Power Tools CTP1 .
EDMX (конструктор) был улучшен в VS 2010 с пакетом обновления 1 (SP1) для работы с большими моделями, но я все еще думаю, что в этом случае большое значение составляет около 100 сущностей / таблиц. В то же время вам редко нужно 715 таблиц в одной модели. Я считаю, что эти 715 таблиц действительно моделируют несколько доменов, поэтому вы можете разделить их на несколько моделей.
То же самое верно, когда вы сначала используете DbContext и код. Если вы моделируете класс, думаете ли вы, что это правильный дизайн, когда класс предоставляет 715 свойств? Я так не думаю, но именно так выглядит ваш производный DbContext
- у него есть открытое свойство для каждого выставленного набора сущностей (в простейшем отображении это означает одно свойство на таблицу).
Одна и та же сущность может использоваться в нескольких моделях, но вы должны стараться избегать ее как можно больше, поскольку она может создать некоторые сложности при загрузке сущности в одном типе контекста и использовании его в другом типе контекста.
Только код = сначала код = основа сущности, когда вы определяете отображение в коде без использования EDMX.