我已經習慣於使用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的)?
謝謝,我會看看我是否可以在某處找到它。 –