Esempio n. 1
0
                protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext context)
                {
                    base.OnModelCreating(modelBuilder, context);

                    foreach (var foreignKey in modelBuilder.Model
                             .GetEntityTypes()
                             .SelectMany(e => MutableEntityTypeExtensions.GetDeclaredForeignKeys(e))
                             .Where(e => e.DeleteBehavior == DeleteBehavior.Cascade))
                    {
                        foreignKey.DeleteBehavior = DeleteBehavior.ClientCascade;
                    }
                }
Esempio n. 2
0
        private void SetEFGlobalQeuryFilters(ModelBuilder modelBuilder)
        {
            foreach (var entityType in modelBuilder.Model.GetEntityTypes())
            {
                var isDeletedProperty = entityType.FindProperty(nameof(BaseTable.IsDeleted));
                if (isDeletedProperty != null && isDeletedProperty.ClrType == typeof(bool))
                {
                    var parameter         = Expression.Parameter(entityType.ClrType, "p");
                    var _memberExpression = Expression.Property(parameter, isDeletedProperty.PropertyInfo);
                    var _matchExpression  = Expression.Equal(_memberExpression, Expression.Constant(false));

                    var filter = Expression.Lambda(_matchExpression, parameter);

                    MutableEntityTypeExtensions.SetQueryFilter(entityType, filter);
                }
            }
        }