С ORM существует множество возможностей, все зависит от того, что вы хотите.
Как настоящий картограф ORM, я настоятельно рекомендую NHibernate и Fluent NH отображений. Вам нужно много исследований, чтобы создать красивую архитектуру, но тогда ничто не мешает вам. С минимальными компромиссами вы получаете настоящую гибкость.
EF6x (ядро не готово к ИМХО) называется ORM, но то, что оно генерирует, ближе к DAL. Есть некоторые вещи, которые вы не можете сделать эффективно с EF6. Тем не менее, это мой любимый инструмент для модели чтения, хотя я комбинирую его с NHibernate (где NH я использую для модели DDD / записи).
Теперь о производительности - это всегда за и против. Если вы углубитесь в архитектуру ORM (см. Мою статью: избегайте вредных привычек ORM ), вы интуитивно найдете способы сделать это быстрее. Вот еще одна моя статья о том, как сделать EF6x 5x быстрее (по крайней мере для ситуаций чтения): EF6.x 5x быстрее