Pregunta

Estoy revisando el código de arquitectura afilada.Hasta ahora, es genial, pero tengo problemas para obtener la cabeza alrededor de cómo implementar objetos de valor DDD en el marco (no parece ser nada mencionar esto en el código).Supongo que la clase de entidad base y la base del repositorio se utilizarán solo para entidades.¿Alguna idea sobre cómo implementar objetos de valor en el marco?

¿Fue útil?

Solución

En arco afilado hay un valor de clase en el espacio de nombres Sparquech.Domain.DomainModel. Este objeto hereda de BasoObject y anula los operadores== y!= Y los métodos iguales () y GetHashCode (). El método anula solo llama las versiones de BaseBject de aquellos dos métodos que a su vez usan el método GetTypEspecificeSignatureProperties () para obtener las propiedades que se utilizarán en la comparación de igualdad.

La línea inferior es la igualdad de la entidad está determinada por

  1. igualdad de referencia
  2. mismo tipo?
  3. las ID son las mismas
  4. Comparación de todas las propiedades decoradas con el atributo [Domainsignature]
  5. Para los objetivos de valor, se usa el método igual de BEBEBJECTS

    1. igualdad de referencia
    2. mismo tipo?
    3. Comparar todas las propiedades públicas
    4. Esto es un poco simplificado, le sugiero que obtenga el código más reciente de GitHub y lea el código en las 3 clases mencionadas.

      Editar: Respecto a la persistencia, esta pregunta < / a> podría ayudar. Aparte de eso, consulte a la documentación oficial de NH y con fluidez NH

Otros consejos

Los objetos de valor son objetos simples que no requieren una clase base.(La única razón por la que las entidades tienen clases de base es proporcionar igualdad según la identidad).Implementar un objeto de valor solo significa crear una clase para representar un valor de su dominio.Muchas veces, los objetos de valor deben ser inmutables y proporcionar métodos de comparación de igualdad para determinar la igualdad a otros objetos de valor del mismo tipo.Echa un vistazo aquí .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top