我已经习惯于使用SQLAlchemy(Python)来映射与lazy="dynamic"
的关系/集合,该关系将该属性映射为查询对象而不是填充的列表/集合(或用于延迟加载属性的代理)。然后,这个映射属性允许您在这样做之前进一步优化用于获取集合的查询(应用顺序,限制,过滤器等)。作为Queryable的地图集合
例如,在SQLAlchemy的我可以映射像这样的关系:
class Post(Base):
...
class User(Base):
...
posts = relationship(Post, lazy="dynamic")
,然后当我检索用户,我可以申请的职位的顺序,或者只检索最近5等
user = session.query(User).get(1)
# Fetch the last 5 posts by user 1
posts = user.posts.order_by(Post.create_date.desc()).limit(5).all()
http://docs.sqlalchemy.org/en/rel_0_7/orm/collections.html
我很想找到一个方法来做到这一点使用FL uent NHibernate的,映射的集合作为一个QueryOver或IQueryable的(LINQ),如:
public virtual QueryOver<Post> Posts {get; set;}
or
public virtual IQueryable<Post> Posts { get; set; }
,并在映射做这样的事情:
public class UserMap : ClassMap<User>
{
public UserMap()
{
...
HasMany(u => u.Posts).Fetch.Dynamic
}
}
这是目前可能使用功能NHibernate(或只是NHibernate的)?
谢谢,我会看看我是否可以在某处找到它。 –