NHibernate:映射IList类型的属性<;日期时间>;

NHibernate:映射IList类型的属性<;日期时间>;,nhibernate,Nhibernate,使用NHibernate,是否有一种快速的方法来映射以下类: public class Office { public virtual Guid Id { get; set; } public virtual IList<DateTime> Holidays { get; set; } } 快?我认为是这样。创建OfficeHoliday类并将其从Office映射为一对多,将集合映射为Office中的私人成员。然后公开假日属性和维护它的方法 public class

使用NHibernate,是否有一种快速的方法来映射以下类:

public class Office
{
    public virtual Guid Id { get; set; }
    public virtual IList<DateTime> Holidays { get; set; }
}

快?我认为是这样。创建OfficeHoliday类并将其从Office映射为一对多,将集合映射为Office中的私人成员。然后公开假日属性和维护它的方法

public class Office
{
    private IList<OfficeHoliday> _officeHolidays;

    public virtual Guid Id { get; set; }

    public IEnumerable<DateTime> Holidays
    {
        get { return _officeHolidays.Select(x => x.Holiday); }
    }

    public void AddHoliday(DateTime holiday)
    {
        // should check if it already exists first...
        var newHoliday = new OfficeHoliday(this, holiday.Date);
        _officeHolidays.Add(newHoliday);
    }

    public void RemoveHoliday(DateTime holiday)
    {
        var removeHoliday = _officeHolidays.FirstOrDefault(x => x.Holiday == holiday.Date);
        if (removeHoliday != null)
        {
            _officeHolidays.Remove(removeHoliday);
        }
    }
}
公共班级办公室
{
私人假期;
公共虚拟Guid Id{get;set;}
公众假期
{
获取{return _officeHolidays.Select(x=>x.Holiday);}
}
公共假日(日期时间假日)
{
//应该先检查它是否已经存在。。。
var newHoliday=新办公假日(此为假日.Date);
_officeHolidays.Add(newHoliday);
}
公共取消作废假日(日期时间假日)
{
var removeHoliday=_officeHolidays.FirstOrDefault(x=>x.Holiday==Holiday.Date);
如果(removeHoliday!=null)
{
_办公假日。移除(移除假日);
}
}
}
public class Office
{
    private IList<OfficeHoliday> _officeHolidays;

    public virtual Guid Id { get; set; }

    public IEnumerable<DateTime> Holidays
    {
        get { return _officeHolidays.Select(x => x.Holiday); }
    }

    public void AddHoliday(DateTime holiday)
    {
        // should check if it already exists first...
        var newHoliday = new OfficeHoliday(this, holiday.Date);
        _officeHolidays.Add(newHoliday);
    }

    public void RemoveHoliday(DateTime holiday)
    {
        var removeHoliday = _officeHolidays.FirstOrDefault(x => x.Holiday == holiday.Date);
        if (removeHoliday != null)
        {
            _officeHolidays.Remove(removeHoliday);
        }
    }
}