justo agarraste un ejemplo donde no encapsulo el Add/Remove... bah... por lo general en los ejemplo de mappings no uso encapsular nada ya que solo se habla de mappings.
2010/10/19 Edgar Ramos <[email protected]> > Lo andaba pensado y repensando y es totalmente logico, siempre tiene que > haber 2 (Un Ingreso y una Salida), me he reido con el ejemplo de la carcel, > pero como lo expuse pudiera haber sido el caso. > > Me di cuenta de los Add y Remove viendo algunos ejemplos interesantes, como > este > > http://fabiomaulo.blogspot.com/2010/03/conform-mapping-many-to-many.html > > Sigo aprendiendo > > Saludos > > Edgar > > > > El 19 de octubre de 2010 17:08, Fabio Maulo <[email protected]>escribió: > > Si queres... la base está en el hecho que Entrada-Salida tienen que estar >> juntos no pueden simplemente ser dos entradas distintas en una >> collecction... bueno a menos que no se trate de los horarios de una carcel y >> tu app. admite que los reclusos con cadena perpetua entran y nunca mas van a >> salir ;) >> >> Los Add and Remove de cada collection están como metodos separados porque >> van a tener logica de negocio (el tuyo es un lindo caso para demostrarlo). >> En un mismo dia no se pueden agregar dos lapsos en overlaps o sea... >> Lunes >> 09:00 a 13:00 false >> 12:00 a 14:00 true >> 13:45 a 17:00 false >> >> Lo mismo pasa con los dias laborales. >> >> Digamos que las clases de negocio si bien tienen que ser POCO no significa >> que no tengan que tener un minimo de logica. >> >> >> 2010/10/19 Edgar Ramos <[email protected]> >> >>> Fabio muchas gracias, estoy analizando tus observaciones >>> >>> Saludos >>> >>> Edgar >>> >>> El 19 de octubre de 2010 16:28, Fabio Maulo <[email protected]>escribió: >>> >>> mmmm no me parece... >>>> WorkDay >>>> { >>>> int DayOfWeek >>>> IEnumerable<WorkTimeDef> Lapses >>>> Add(WorkTimeDef timeDef) >>>> Remove(WorkTimeDef timeDef) >>>> } >>>> >>>> TimeRange (seguro no es una entidad; no tiene ID) >>>> { >>>> TimeSpan Begin >>>> TimeSpan End >>>> bool IsValid >>>> bool Overlaps(TimeRange other) >>>> etc. etc. >>>> } >>>> >>>> WorkTimeDef >>>> { >>>> TimeRange Lapse; >>>> bool IsLunchTime; >>>> } >>>> >>>> FixedWorkWeek >>>> { >>>> IEnumerable<WorkDay> WorkDays >>>> Add(WorkDay day) >>>> Remove(WorkDay day) >>>> } >>>> >>>> veo solo FixedWorkWeek como entidad pero podria ser tambien WorkDay... >>>> no estoy tan seguro. >>>> >>>> 2010/10/19 Edgar Ramos <[email protected]> >>>> >>>>> Gracias Fabio >>>>> >>>>> Estoy empezando por el analisis de mi dominio, >>>>> >>>>> public class HorarioFijo : IHorario >>>>> { >>>>> .... >>>>> private readonly IDictionary<DiaDeLaSemana, List<HoraLaboral>> >>>>> mapeoHorasDia; >>>>> ... >>>>> } >>>>> >>>>> y se me olvidaba la parte de la bdd, aqui pongo un bosquejo de las >>>>> tablas >>>>> >>>>> Las tablas podrian verse como lo siguiente >>>>> >>>>> Tabla Horarios (aplicaría la herencia table-per-class hierarchy) >>>>> Campos >>>>> HorarioID: 1 PK >>>>> Descriminador: Pueden Ser Horarios Fijos o Variables >>>>> Descripcion: De 08:30 A: 13:00 y De 14:00, A: 18:30 >>>>> >>>>> Tabla HorasDiarias Ejemplo1 >>>>> HorasDiariasID HorarioID DiaSemana Ingreso1 Salida1 Ingreso2 >>>>> Salida2 >>>>> 1 1 Lunes 08:00 >>>>> 13:00 14:00 18:00 >>>>> 2 1 Martes 08:00 >>>>> 13:00 14:00 18:00 >>>>> 3 1 Miercoles 08:00 >>>>> 14:00 00:00 00:00 >>>>> >>>>> >>>>> Tabla HorasDiarias Ejemplo2 >>>>> HorasDiariasID HorarioID DiaSemana HoraLaboralID >>>>> 1 1 Lunes 1 >>>>> 2 1 Martes 1 >>>>> 3 1 Miercoles 2 >>>>> >>>>> Tabla HoraLaboral >>>>> HoraLaboralID HorasDiariasID HorarioID EsHoraComida Tipo >>>>> Hora >>>>> 1 1 1 False >>>>> Ingreso 08:00 >>>>> 2 1 1 False >>>>> Salida 18:00 >>>>> 3 1 1 True >>>>> Salida 13:00 >>>>> 4 1 1 True >>>>> Ingreso 14:00 >>>>> >>>>> >>>>> Podria ser algo asi, pero desde luego como se esta en etapa de >>>>> analisis, nada se encuentra creado en la bdd, lo vamos a generar con nh3 >>>>> Cualquier comentario es bienvenido >>>>> >>>>> >>>>> Saludos >>>>> >>>>> Edgar >>>>> >>>>> El 19 de octubre de 2010 14:35, Fabio Maulo >>>>> <[email protected]>escribió: >>>>> >>>>> cual es la representacción en tablas ? >>>>>> >>>>>> 2010/10/19 Edgar Ramos <[email protected]> >>>>>> >>>>>>> Gente un saludo, en mi contexto tengo algo como lo siguiente >>>>>>> >>>>>>> public class HorarioFijo : IHorario >>>>>>> { >>>>>>> .... >>>>>>> private readonly IDictionary<string, List<HoraLaboral>> >>>>>>> HorasDia; >>>>>>> ..... >>>>>>> } >>>>>>> >>>>>>> Esto es posible mapearlo con nh3 ? >>>>>>> >>>>>>> Muchas gracias a todos >>>>>>> >>>>>>> Saludos >>>>>>> >>>>>>> Edgar >>>>>>> >>>>>>> -- >>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>> [email protected] >>>>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Fabio Maulo >>>>>> >>>>>> -- >>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>> [email protected] >>>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>> >>>>> >>>>> -- >>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>> [email protected] >>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>> >>>> >>>> >>>> >>>> -- >>>> Fabio Maulo >>>> >>>> -- >>>> Para escribir al Grupo, hágalo a esta dirección: >>>> [email protected] >>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>> >>> >>> -- >>> Para escribir al Grupo, hágalo a esta dirección: >>> [email protected] >>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>> >> >> >> >> -- >> Fabio Maulo >> >> -- >> Para escribir al Grupo, hágalo a esta dirección: >> [email protected] >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >> > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > -- Fabio Maulo -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
