Возможно, вам нужно начать с префикса этих вопросов в той версии, о которой вы говорите. В следующей версии .NET 4.0 исправлено большое количество неприятностей.
Вот что я бы сказал после работы с первой версией в течение примерно 6 месяцев с использованием БД приличного размера в sql 2k8 (более 40 таблиц, несколько таблиц со строками, близкими к 1M, и приличный объем трафика)
- Отсутствие свойств внешнего ключа . То есть, если я хочу знать или работать только с идентификатором связанной таблицы, я должен загрузить фактическую сущность. (исправлено в следующей версии)
- Полное отсутствие простого внешнего соединения , как у linq to sql при использовании DefaultIfEmpty . Исправлено в следующей версии.
- Сгенерированное Sql меньше оптимального Это, похоже, исправлено и в следующей версии
- Очень сложно абстрагироваться от вашего кода для тестируемости и для использования в многоуровневых средах , но это можно сделать. Это также можно классифицировать как проблему POCO, которая также была решена.
Есть и другие, но это мои лучшие.
В целом я бы использовал его снова, но если вы начинаете с нуля, пожалуйста, избавьте себя от боли и дождитесь последней версии или начните использовать бета-версию, если можете.