Quando uma exceção de concorrência é detectada pelo framework, a DataAccessLayer recupera o registro conflitante do banco de dados e compara a versão do registro do servidor. Se nenhuma informação mal combinada for encontrada, o registro é forçado a ser salvo e o usuário final não será nunca notificado da colisão de dados. Se a informação diferente for achada, então o usuário final é notificado que alguém mais modificou o registro antes e um formulário é apresentado ao usuário que permite a ele corrigir a concorrência antes de salvar novamente os registros.
Esta auto-manipulação de colisões de dados pode ser desabilitada, e existem propriedades que determinam como o desenvolvedor será notificado se a concorrência de exceção acontecer. Por padrão, um evento é inciado automaticamente pelo formulário de objetos de negócios pai(para apresentar ao usuário final com a lista de valores mal combinados), mas uma objeto de negócios pode ser configurado para exibir uma exceção quando a colisão ocorrer.
A classe DataAccessLayer foi sincronizada para prevenir repercursões não necessárias vindas de acessos simultaneospor multiplas threads. Requisição por dados podem ser feitas somente por camadas de negócios em diferentes threads sem requerer ao desenvolvedor explicitamente sincronizar estas requisições. Além disso, eventos iniciados pela camada de acesso a dados são explicitamente iniciados no aplicativo principal para previnir erros cross-thread quando os eventos forem aumentados na interface do usuário.
Configurações CRUD são criticas quando completam com êxito e aperfeiçoam inserções, atualizações e apagar performance entre a DataAccessLayer e o banco de dados. Em alguns casos, políticas da empresa força ao desenvolvedor usar store procedures em toda interação CRUD. Nesta situação as opções CRUD não são somente úteis; elas são vitais. Uma store procedure pode ser especificada para cada operação CRUD (INSERT, UPDATE, and DELETE) através de propriedades nos objetos de negócios, que usa estas configurações de volta quando interagindo com a DataAccessLayer.