Легко. Например, предположим, у вас есть таблица Product , сопоставленная с Products EntitySet в вашем контексте, теперь вы хотите передать предикат и выбрать Product :
Expression<Func<Product, bool>> GetPredicate(int id) {
return (p => p.ProductID == id);
}
Вы можете вызвать GetPredicate () с идентификатором продукта для фильтрации на основе этого:
var query = ctx.Products.Where(GetPredicate(1)).First();
Дело в том, что вы всегда можете передать лямбда-выражение туда, где необходимо выражение .
EDIT:
Вы должны изменить свой код следующим образом:
var ViewModel = _db.Suppliers.Select(model => new {
model,
SupType = model.SupplierType.SupplierTypeTexts.Where(GetText())
});
public Expression<Func<SupplierTypeText, bool>> GetText() {
return (stt => stt.LangID == 1);
}