Я хотел бы добавить условное свойство к сущности NHibernate, используя FluentNhibernate для сопоставления.Я также хотел бы заказать по этому свойству в моих критериях поиска.
У меня есть список контрактов, которые я хотел бы пометить как просроченные или нет, основываясь на передаче свойства EndDate в контракте.Что касается заказа, я бы хотел, чтобы истекшие контракты опустились в конец списка.
Мой желаемый результат в виде оператора T-SQL;
SELECT ID, BeginDate, EndDate, CASE WHEN EndDate > GETDATE() THEN 1 ELSE 0 END AS Expired
FROM myTable
ORDER BY CASE WHEN EndDate > GETDATE() THEN 1 ELSE 0 END;
Возможно ли это с FluentNHibernate?
Моя (очищенная) сущность;
namespace MyDomain.Entities
{
public class MyEntity
{
// [ID] [int] IDENTITY(1,1) NOT NULL
public virtual int ID { get; private set; }
// [IsDeleted] [bit] NOT NULL
public virtual bool IsDeleted { get; set; }
// [BeginDate] [datetime] NOT NULL
public virtual DateTime BeginDate { get; set; }
// [EndDate] [datetime] NOT NULL
public virtual DateTime EndDate { get; set; }
}
}
Мое сопоставление для этой сущности;
namespace MyDomain.Mappings
{
public class MyEntityMap : ClassMap<MyEntity>
{
public MyEntityMap ()
{
this.Table("myTable");
this.Id(x => x.ID);
this.Map(x => x.IsDeleted);
this.Map(x => x.BeginDate);
this.Map(x => x.EndDate);
}
}
}