Производный класс создается на базовом классе. Если Вы думаете об этом, базовый объект нужно инстанцировать в памяти, прежде чем производный класс сможет быть добавлен к нему. Таким образом, базовый объект будет создан на пути к созданию производного объекта. Так не, Вы не вызываете конструктора.
I use PredicateBuilder for such things.
The predicate construction looks like this:
var query = from d in context.Domains select d;
var predicate = PredicateBuilder<Domains>.False();
for (int i = 0; i < words.Length; i++)
{
predicate = predicate.Or(d => d.Name.Contains(words[i]));
}
query = query.Where(predicate);