示例#1
0
        public SqlCommand BuildDisableForeignKeyCommand(SqlConnection connection, DisableForeignKeyRequest request)
        {
            var cmd = connection.CreateCommand();

            cmd.CommandType = CommandType.Text;
            cmd.CommandText = $"ALTER TABLE [{request.SchemaName}].[{request.TableName}] NOCHECK CONSTRAINT [{request.ForeignKeyName}]";

            return(cmd);
        }
示例#2
0
        private async Task DisableForeignKeys(IEnumerable <ForeignKeyInfo> references)
        {
            foreach (var item in references)
            {
                var request = new DisableForeignKeyRequest
                {
                    ForeignKeyName = item.Name,
                    SchemaName     = item.ForeignSchemaName,
                    TableName      = item.ForeignTableName
                };

                await _metadataRepository.DisableForeignKeysAsync(request);
            }
        }
        public async Task DisableForeignKeysAsync(DisableForeignKeyRequest request)
        {
            var cmd = CommandBuilder.BuildDisableForeignKeyCommand(Connection, request);

            try
            {
                await Connection.OpenAsync();

                await cmd.ExecuteNonQueryAsync();
            }
            finally
            {
                await Connection.CloseAsync();
            }
        }