Звучит так, будто вы хотите добавить WHERE к вашим наборам объектов по умолчанию. Я не знаю, можете ли вы сделать это по умолчанию, но я могу придумать несколько способов сделать это:
1) Используйте представления, чтобы дать вам предложение WHERE, и создайте свои сущности из представлений. На самом деле я никогда не делал этого, поэтому я не знаю, насколько хорошо представления работают с EF - если вам нужно выполнить обратную запись в базу данных, это, вероятно, не сработает.
2) Создайте новые свойства в частичном классе вашего EDMX, например:
partial class MyEntities
{
public IQueryable<Foo> ActiveFoos
{
return Foos.Where(f => f.Deleted == 0);
}
}
...
using (var context = new MyEntities())
{
var foo = context.ActiveFoos.Where(f => f.Id == 1).SingleOrDefault();
}
3) Создайте дочерний класс контекста и new
извлеките свойства - довольно уродливо, но это будет достаточно прозрачно для разработчика после его создания.
public class CustomEntities : MyEntities
{
public new IQueryable<Foo> Foos
{
get { return base.Foos.Where(f => f.Deleted == 0); }
}
}
...
using (var context = new CustomEntities())
{
var foo = context.Foos.Where(f => f.Id == 1).SingleOrDefault();
}