给定班级:
public class VotingResult : DomainEntity
{
public const string DefaultTag = "overall";
public VotingResult()
{
Dimension = DefaultTag;
}
public virtual DomainEntity Item { get; set; }
public virtual String Dimension { get; set; }
public virtual double Value { get; set; }
public virtual int VoteCount { get; set; }
public virtual DateTime DateCreated {get; set;}
}
和映射
public sealed class VotingResultMap : ClassMap<VotingResult>
{
private VotingResultMap()
{
Id(x => x.Id);
Map(x => x.Option);
Map(x => x.Dimension);
Map(x => x.DateCreated);
Map(x => x.Value);
Map(x => x.VoteCount);
ReferencesAny(x => x.Item).AddMetaValues(); // extension method to add discriminators
}
}
有没有办法通过 Linq 或 HQL 投射 VotingResult.Item.GetType()(“从 VotingResult 中选择 r.class”似乎不起作用。我可以使用一些讨厌的技巧,但我需要能够轻松地将引用扁平化为类型和 id - 理想情况下使用 Linq 或 AliasToBeanResultTransformer。
作为记录,DomainEntity 子类的继承映射是 Table Per Class。
谢谢