Misturando Fluent API e DataAnnotations no código EF primeiro

Embora usemos principalmente configurações fluentes para nossos primeiros POCOs com código, achamos útil usar annotations de dados para coisas como o nome da tabela, PKs, etc., já que isso facilita para componentes não-EF que não têm uma referência. para o ObjectContext para interagir com essas entidades.

Em nossa experiência, parece que os dois estilos de configuração podem ser misturados livremente, com configuração fluente substituindo DataAnnotations. Isso está documentado em algum lugar? Existe algum risco de fazer essa configuração mista?

Estamos atualmente usando a EF 4.3.1

Eu pessoalmente não encontrei nenhum problema em misturar a primeira API fluente e as annotations de dados. Também me perguntei se haveria alguma dor no cruzamento e posso dizer honestamente que ainda não encontrei nenhuma. Aqui estão algumas referências a estudos de caso sobre o assunto para aliviar sua mente.

(Direto da equipe da EF) http://msdn.microsoft.com/pt-br/data/jj591583.aspx

(Parte 1) http://www.codeproject.com/Articles/476966/FluentplusAPIplusvsplusDataplusAnnotations-plusWor

Você pode usar os atributos de anotação de dados e a API do Fluent ao mesmo tempo. O Entity Framework dá precedência aos atributos Fluent API over Data Annotations.

Eu não acho que seja um risco – já que ambas as coisas têm contrapartidas equivalentes para a maioria delas.

Mas, pessoalmente, quando me deparo com algum tipo de problema em torno da estruturação de minhas entidades – a primeira coisa que faço é remover as annotations, se houver alguma – e movê-las para fluentes.

Que com o tempo me levou a usar uma configuração bastante direta e fluente (também liberando meus objects de qualquer laço com o estado de espírito do Db) …

IMO é “mais seguro”, mas apenas de uma forma que você pode fazer mais e controlar as coisas exatamente como você quer. Também ajuda a manter as coisas consistentes e em um só lugar.