我使用Fluent NHibernate映射了以下实体(本例简化):
public class Stock : Security
{
public virtual string TickerName { get; set; }
public override string GetName()
{
return TickerName;
}
}
public class Fund : Security
{
public virtual string FullName { get; set; }
public virtual string TickerDomain { get; set; }
public override string GetName()
{
return FullName;
}
}
public abstract class Security
{
public virtual int Id { get; set; }
public virtual string Ticker { get; set; }
public virtual string ISINCode { get; set; }
public abstract string GetName();
}
public class Holding
{
public virtual int Id { get; set; }
public virtual Security Security { get; set; }
public virtual int Units { get; set; }
public virtual decimal AcquisitionValue { get; set; }
}
还有一个客户端实体,其中包含一个或多个策略。每项政策都持有(持有)证券(股票和基金)。 我想使用报告( HoldingReport )来显示当前在任何政策所持有的证券。 HoldingReport只是一个DTO,它没有映射。 该报告应计算当前持有安全性的策略数量,并包括名称(来自GetName方法)和安全类型(股票或基金)。这是HoldingReport。
public class HoldingReport
{
public virtual string SecurityType { get; set; }
public virtual string SecurityName { get; set; }
public virtual int ActiveHoldings { get; set; }
}
您如何使用Criteria和DetachedCriteria执行此操作?