У нас был ужасный опыт работы с объектами ADO.NET с использованием LINQ: наследование сильно замедляет работу. Небольшая база данных (скажем, 100 записей или около того) с 20 классами, большинство из которых были унаследованы, запрос может легко занять 10 секунд.
Поэтому сделайте дерево наследования настолько мелким, насколько это возможно, при использовании ADO.NET Entities + LINQ.