Абсолютно, вы можете сделать это, используя DefiningQuery (который по сути является представлением TSQL) в SSDL.
Но я не рекомендую это.
Проблема в том, что членство в типах будет временным, когда оно должно быть постоянным или, по крайней мере, потребовать от вас явного изменения.
т.е. Вы можете оказаться в ситуации, когда в какой-то момент что-то будет ActiveShow (и загружено в память), но если вы выполните последующий запрос, вы можете попытаться загрузить тот же объект, что и Show. В этой ситуации, что произойдет с разрешением личности, можно только догадываться.
Это, скорее всего, прибегнет к некоторым очень неприятным неожиданным побочным эффектам.
В качестве альтернативы может быть добавлено дополнительное свойство в вашем контексте в частичном классе:
т.е.
public partial class MyContext
{
public ObjectQuery<Show> ActiveShows
{
get{
return this.Shows.Where(s => ShowDateTime > DateTime.Now)
as ObjectQuery<Show>;
}
}
}
Это, вероятно, дает вам большинство преимуществ без большинства рисков.
Надеюсь, это поможет
Alex