heartdevil: виртуальные классы есть во всех ООП языках.
В целом не принято из базового класса делать абстрактный наследуемый, это говорит о неверном проектировании классов. Есть хорошая книга Сергея Теплякова - Паттерны проектирования на платформе .Net советую вам почитать.
Пробывал. Выбор реализации метода, помеченного как virtual, осуществляется во время выполнения, основываясь на типе объекта, а не на его указателя, вызов виртуального метода, требует больше ресурсов и времени. Читаем, что такое полиморфизм и виртуальные методы https://ru.wikipedia.org/wiki/Виртуальный_метод
при чем тут версия .NET? и менять можно лишь на минимально поддерживаемую типом проекта. (например для Win8 нельзя установить меньше чем 4.5, а для WinForms можно хоть 2.0)
При отложенном выполнении, запрос не будет выполнятся, пока не будет вызвано перечисление коллекции, например через foreach или например методы ToList() или ToEnumerable(). dbset.where(predicate) компилируется в единственный SQL запрос, результаты которого потом возвращаются. Подробнее https://msdn.microsoft.com/ru-ru/library/bb386964(...
то, что запрос выполняется один раз, покажет SQL Server Profiler.
nvarchar [ ( n | max ) ]
Строковые данные переменной длины в Юникоде. Параметр n определяет длину строки и должен иметь значение от 1 до 4000. Значение max указывает, что максимальный размер при хранении составляет 2^31-1 байт (2 ГБ). Размер хранилища в байтах вдвое больше числа введенных символов + 2 байта.
про ntext с MSDN
Типы данных ntext, text и image будут удалены в следующей версии Microsoft SQL Server. Избегайте использования этих типов данных в новых проектах и запланируйте внесение изменений в приложения, использующие их в настоящее время. Вместо этих типов данных следует использовать типы nvarchar(max), varchar(max) и varbinary(max).
Ничего автоматом не публикуется, я например пишу коммерческий проект, и сразу исходники в открытый доступ?. https://ru.wikipedia.org/wiki/GitHub начните с этого.
не дочитал комментарии, ну значит второй способ, хотя тоже не совсем верно, вынести зависимые данные в третий класс, и передавать в качестве зависимости его.