2013-03-28 216 views
2

我只是複製和下方後從here方法,這是定義:與實體框架獲取

public IList<Post> PostsForCategory(string categorySlug, int pageNo, int pageSize) 
{ 
    var query = _session.Query<Post>() 
        .Where(p => p.Published && p.Category.UrlSlug.Equals(categorySlug)) 
        .OrderByDescending(p => p.PostedOn) 
        .Skip(pageNo * pageSize) 
        .Take(pageSize) 
        .Fetch(p => p.Category); 

    query.FetchMany(p => p.Tags).ToFuture(); 

    return query.ToFuture().ToList(); 
} 

但是,我使用實體框架,而不是NHibernate的,但的EntityFramework沒有任何定義FetchFetchMany!我如何用Entity框架來做到這一點?

回答

0

我將NHibernate中的完整項目與NHibernate遷移到實體框架。如果您在項目中擁有良好的邏輯並牢記下一次轉換,我相信您不會遇到任何問題。

ISession ==> DbContext 
session.QueryOver<T> ==> dbContext.Set<T> 
session.Query<T> ==> dbContext.Set<T> 
Query<T>.Fetch() ==> Set<T>.Include() 
session.CreateSQLQuery ==> dbContext.Database.SqlQuery 
ClassMapping<T> ==> EntityTypeConfiguration<T>