2
我用流利的NHibernate映射的下列类来订购的hasMany集合:如何用流利的NHibernate映射一个子属性
public abstract class DomainObject
{
public virtual int Id { get; protected internal set; }
}
public class Attribute
{
public virtual string Name { get; set; }
}
public class AttributeRule
{
public virtual Attribute Attribute { get; set; }
public virtual Station Station { get; set; }
public virtual RuleTypeId RuleTypeId { get; set; }
}
public class Station : DomainObject
{
public virtual IList<AttributeRule> AttributeRules { get; set; }
public Station()
{
AttributeRules = new List<AttributeRule>();
}
}
我流利的NHibernate的映射是这样的:
public class AttributeMap : ClassMap<Attribute>
{
public AttributeMap()
{
Id(o => o.Id);
Map(o => o.Name);
}
}
public class AttributeRuleMap : ClassMap<AttributeRule>
{
public AttributeRuleMap()
{
Id(o => o.Id);
Map(o => o.RuleTypeId);
References(o => o.Attribute).Fetch.Join();
References(o => o.Station);
}
}
public class StationMap : ClassMap<Station>
{
public StationMap()
{
Id(o => o.Id);
HasMany(o => o.AttributeRules).Inverse();
}
}
我想通过Attribute.Name属性订购Station上的AttributeRules列表,但执行以下操作不起作用:
HasMany(o => o.AttributeRules).Inverse().OrderBy("Attribute.Name");
我还没有找到一种方法在映射中执行此操作。我可以创建一个IQuery或ICriteria来为我做这件事,但理想情况下,我只想在我请求时对AttributeRules列表进行排序。
有关如何进行此映射的任何建议?
它生成的字符串包含表别名,所以这是一个不行 – Dave 2013-11-28 16:14:22