¿Puede un DbContext aplicar una política de filtro?

Me gustaría pasar un valor al ctor de un DbContext y luego hacer que ese valor imponga el "filtrado" en los DbSets relacionados. ¿Es esto posible ... o hay un mejor enfoque?

Code podría verse así:

class Contact {
  int ContactId { get; set; }
  int CompanyId { get; set; }
  string Name { get; set; }
}

class ContactContext : DbContext {
  public ContactContext(int companyId) {...}
  public DbSet<Contact> Contacts { get; set; }
}

using (var cc = new ContactContext(123)) {
  // Would only return contacts where CompanyId = 123
  var all = (from i in cc.Contacts select i);

  // Would automatically set the CompanyId to 123
  var contact = new Contact { Name = "Doug" };
  cc.Contacts.Add(contact);
  cc.SaveChanges();

  // Would throw custom exception
  contact.CompanyId = 456;
  cc.SaveChanges;
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta