foreach ( var entityType in modelBuilder.Model.GetEntityTypes() )
{
if ( typeof( IArchivable ).IsAssignableFrom( entityType.ClrType ) )
{
var parameter = Expression.Parameter( entityType.ClrType , "p" );
var archivedCheck = Expression.Lambda(Expression.Equal(Expression.Property(parameter, "IsArchived"), Expression.Constant(false)), parameter);
modelBuilder.Entity( entityType.ClrType ).HasQueryFilter( archivedCheck );
}
}
foreach ( var entityType in modelBuilder.Model.GetEntityTypes() )
{
if ( typeof( IArchivable ).IsAssignableFrom( entityType.ClrType ) )
{
var parameter = Expression.Parameter( entityType.ClrType , "p" );
var archivedCheck = Expression.Lambda(Expression.Equal(Expression.Property(parameter, "IsArchived"), Expression.Constant(false)), parameter);
modelBuilder.Entity( entityType.ClrType ).HasQueryFilter( archivedCheck );
}
}