我只是从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();
}
但是,我使用的是Entity框架而不是NHibernate,但是EntityFramework没有Fetch
或FetchMany
的任何定义!我如何使用Entity框架做到这一点?
答案 0 :(得分:3)
您可以通过Include
方法执行此操作:http://msdn.microsoft.com/en-us/data/jj574232.aspx
注意,Include
是一种扩展方法,因此在编译之前,您必须将System.Data.Entity
添加到using语句中。
答案 1 :(得分:0)
我使用NHibernate将MVC中的完整项目迁移到Entity Framework。如果您的项目中有一个良好的逻辑并牢记下一次转换,我相信您可能会遇到问题。
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>