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();
}

Fetchしかし、NHibernate の代わりに Entity フレームワークを使用していますが、EntityFramework にはorの定義がありませんFetchMany。Entityフレームワークでそれを行うにはどうすればよいですか?

4

2 に答える 2

3

これは次のInclude方法で行います: http://msdn.microsoft.com/en-us/data/jj574232.aspx

Includeは拡張メソッドであるため、System.Data.Entityコンパイルする前に using ステートメントに追加する必要があることに注意してください。

于 2013-03-28T14:14:14.160 に答える
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>
于 2016-11-08T19:18:58.123 に答える