C# Fluent Nhibernate查询仅按日期而不按时间获取记录
我有以下对象:C# Fluent Nhibernate查询仅按日期而不按时间获取记录,c#,linq,orm,fluent-nhibernate,C#,Linq,Orm,Fluent Nhibernate,我有以下对象: public class DomainMenu:EntityBase { public virtual DomainName DomainName { get; set; } public virtual DateTime PlannedDate { get; set; } public virtual DateTime CreationDate { get; set; } public virtual s
public class DomainMenu:EntityBase
{
public virtual DomainName DomainName { get; set; }
public virtual DateTime PlannedDate { get; set; }
public virtual DateTime CreationDate { get; set; }
public virtual string Notes { get; set; }
}
public class DomainMenuMap : ClassMap<DomainMenu>
{
public DomainMenuMap()
{
Id(c => c.Id).GeneratedBy.Identity();
Map(c => c.PlannedDate);
Map(c => c.CreationDate);
Map(c => c.Notes);
References(c => c.DomainName);
}
}
public IList<DomainMenu> GetDomainMenuesPlannedForNextDays(int domainId)
{
using (_unitOfWorkFactory.Create())
{
var todayDate = DateTime.Now.Date;
var list = _domainMenuRepository.QueryOver()
.Where(c=>c.PlannedDate.Date >= todayDate)
.Where(c => c.DomainName.Id == domainId)
.Future().ToList();
return list;
}
}
和映射:
public class DomainMenu:EntityBase
{
public virtual DomainName DomainName { get; set; }
public virtual DateTime PlannedDate { get; set; }
public virtual DateTime CreationDate { get; set; }
public virtual string Notes { get; set; }
}
public class DomainMenuMap : ClassMap<DomainMenu>
{
public DomainMenuMap()
{
Id(c => c.Id).GeneratedBy.Identity();
Map(c => c.PlannedDate);
Map(c => c.CreationDate);
Map(c => c.Notes);
References(c => c.DomainName);
}
}
public IList<DomainMenu> GetDomainMenuesPlannedForNextDays(int domainId)
{
using (_unitOfWorkFactory.Create())
{
var todayDate = DateTime.Now.Date;
var list = _domainMenuRepository.QueryOver()
.Where(c=>c.PlannedDate.Date >= todayDate)
.Where(c => c.DomainName.Id == domainId)
.Future().ToList();
return list;
}
}
公共类DomainMenuMap:ClassMap
{
公共域菜单映射()
{
Id(c=>c.Id).GeneratedBy.Identity();
地图(c=>c.PlannedDate);
Map(c=>c.CreationDate);
地图(c=>c.Notes);
参考文献(c=>c.DomainName);
}
}
我有以下方法:
public class DomainMenu:EntityBase
{
public virtual DomainName DomainName { get; set; }
public virtual DateTime PlannedDate { get; set; }
public virtual DateTime CreationDate { get; set; }
public virtual string Notes { get; set; }
}
public class DomainMenuMap : ClassMap<DomainMenu>
{
public DomainMenuMap()
{
Id(c => c.Id).GeneratedBy.Identity();
Map(c => c.PlannedDate);
Map(c => c.CreationDate);
Map(c => c.Notes);
References(c => c.DomainName);
}
}
public IList<DomainMenu> GetDomainMenuesPlannedForNextDays(int domainId)
{
using (_unitOfWorkFactory.Create())
{
var todayDate = DateTime.Now.Date;
var list = _domainMenuRepository.QueryOver()
.Where(c=>c.PlannedDate.Date >= todayDate)
.Where(c => c.DomainName.Id == domainId)
.Future().ToList();
return list;
}
}
public IList GetDomainMenuesPlannedForNextDays(int-domainId)
{
使用(_unitOfWorkFactory.Create())
{
var todayDate=DateTime.Now.Date;
var list=\u domainMenuRespository.QueryOver()
.其中(c=>c.PlannedDate.Date>=todayDate)
.Where(c=>c.DomainName.Id==domainId)
.Future().ToList();
退货清单;
}
}
在此方法中,我希望获取PlannedDate大于或等于today date的行。我只想比较日期值,不比较时间,但得到以下错误:
无法解析属性:PlannedDate。日期:DomainMenu
是否可以在Fluent Nhibernate中使用QueryOver进行编辑?
注意:我只对使用这个解决方案感兴趣,我不想要不同的方法,因为我已经知道它们,我只想知道使用QueryOver是否可行
谢谢。NHibernate不知道如何处理Date属性,它是.Net属性,queryover api无法处理它 看看这个关于如何用自定义方法和属性扩展queryover的博客
谢谢,我来看看。