Entity Framework 4 - Обработка очень больших (более 1000 таблиц) моделей данных? - PullRequest
19 голосов
/ 05 июня 2010

У нас есть база данных с более чем 1000 таблицами и мы хотели бы рассмотреть возможность использования EF4 для нашего уровня доступа к данным, но меня беспокоит практическая реальность использования ее для такой большой модели данных. Я видел этот вопрос и читал о предлагаемых решениях здесь и здесь . Они могут работать, но, по-видимому, относятся к первой версии Entity Framework (и являются более сложными, чем мне бы хотелось). Кто-нибудь знает, были ли эти решения улучшены в EF4? Или есть другие предложения все вместе? Спасибо.

ОБНОВЛЕНИЕ: После нескольких попыток заставить EF работать, я решил отказаться от всего этого вместе для этого проекта. Поддержка больших моделей данных просто отсутствует, и хотя могут существовать обходные пути (например, редактирование и поддержка xml независимо от дизайнера), они просто не чувствуют себя готовыми к прайм-тайм. Самым проблематичным для меня является тот факт, что EF плохо работает с моделью предметной области, распределенной по нескольким XML-файлам, без большой избыточности и дублирования кода. Я все еще открыт для предложений (я знаю, что не отодвинул все слои лука EF), но сейчас я продолжаю без EF.

ОБНОВЛЕНИЕ № 2: Похоже, что первая поддержка ожидающего кода (в настоящее время EF4 CTP4 ), скорее всего, окажется тем решением, которое нам нужно, поскольку оно выводит из строя дизайнера и обслуживание больших файлов XML .

Ответы [ 3 ]

18 голосов
/ 05 июня 2010

Число, которое я слышал в скринкасте Microsoft, составляет максимум около 250 таблиц на модель EF. Это не означает, что EF не может обрабатывать больше - возможно, было бы разумно разбить ваши таблицы более 1000 на несколько логических групп таблиц и использовать одну модель EF для каждой логической группы (с до 250 таблицами в ней).

Я очень сомневаюсь, что у вас будут запросы, в которых нужно будет использовать все 1000 таблиц одновременно - скорее всего, даже не 10 одновременно. Таким образом, вы наверняка сможете разделить свою довольно большую модель на более мелкие кластеры и превратить каждую в отдельную модель EF.

7 голосов
/ 05 июня 2010

Вы должны обязательно взглянуть на LLBLGen Pro v3 . Хотя LLBLGen - это еще один инструмент O / RM, так же как EF - инструмент O / RM, последняя версия содержит конструктор, который позволяет создавать модели для LINQ to SQL, NHibernate и Entity Framework (как 1.0, так и 4.0). Его дизайнер довольно солидный и лучше поддерживает модели больших доменов.

2 голосов
/ 19 января 2011

Я уверен, что не все 1000+ таблиц связаны между собой. Разбейте это на логические части.

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