Применение Entity Framework в научной (числовой) программе обработки - PullRequest
0 голосов
/ 21 июля 2010

У меня есть вопрос, заставляющий задуматься, относительно использования Entity Framework (EF) для сохранения данных.Мое (предполагаемое) приложение не является типичным сценарием LOB, в котором стандартные операции CRUD выполняются с отдельными записями.

Вместо того, что бы я хотел использовать данные, хранящиеся в моих объектах, создайте некоторые матрицы, комбинируя данныена нескольких сущностях и делать некоторые интенсивные математические вычисления.На протяжении всего этого интенсивного процесса к объектам сущностей будет постоянно осуществляться доступ и их обновление.

Меня беспокоит то, что доступ к свойствам в сущностях EF и их обновление приведут к значительному снижению скорости всей операции из-за всехвызовы Lazy Loading, NotifyPropertyChanged и PropertyChanged, PropertyChanging и вызовы функции SaveChanges для объекта контекста EF ... в отношении стандартных объектов C #.

Любые мысли о том, как уменьшить проблемы со скоростью,за счет некоторых изысков, которые предлагает EF?

С уважением, LiamV

Ответы [ 2 ]

1 голос
/ 21 июля 2010

Не преждевременно оптимизировать.Проверьте это и посмотрите.Ленивая загрузка может быть отключена, и отслеживание изменений не требует больших затрат.Да, вы можете использовать POCO, если это необходимо, но было бы огромной ошибкой принимать такое решение на основе предполагаемых проблем с производительностью.

Тем не менее, я думаю, что это хорошее решение с точки зрения управления зависимостями - не делать бизнес-логику зависимой от постоянного хранения.Вам не нужно использовать сущности POCO для этого;Вы можете проецировать на бизнес-типы с любым видом организации.

1 голос
/ 21 июля 2010

Хм, сначала вам нужно избегать ссылок между сущностями и не использовать сгенерированные сущности.Подумайте об использовании POCO (простые старые объекты C #) и Entity Framework, сначала метода с кодом.Это позволяет вам контролировать всю структуру кода, которая будет вызываться через ваши объекты.Может быть, эта ссылка помогает http://blogs.msdn.com/b/adonet/archive/2009/05/21/poco-in-the-entity-framework-part-1-the-experience.aspx

...