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
