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

Responder a