EF 3,5?В любом случае ...
Вы можете добавить критерии поиска к ObjectQuery, ObjectSet или IQueryable и объединить их в цепочку, исходя из того, какие критерии поиска полезны.
public SearchMyThings( string a, string b, int c )
{
var mywidgets = ObjectContext.CreateObjectSet<Widget>();
//or the EF 1.0 version CreateSet?
if( !a.IsNullOrEmpty )
mywidgets = mywidgets.Where( w => w.AProperty == a );
if( !b.IsNullOrEmpty )
mywidgets = mywidgets.Where( w => w.BProperty == b );
if( c > 0 )
mywidgets = mywidgets.Where( c => c.CProperty == c );
}
Если вам нужен строковый подход,всегда можно использовать перегрузки ObjectQuery.Where ("esql") для динамического построения некоторого eql и его передачи.
Если вам нужно БОЛЬШЕ контроля над строками и вы не боитесь сложности, вы можете дать Dynamic Linq попробовать.