EF ObjectQuery <T>query = ObjectSet;Так близко - PullRequest
0 голосов
/ 23 ноября 2011

В моем RepositoryBase в DAL у меня есть код ниже ... Я не могу понять, ObjectQuery query = ObjectSet;?Я близко?

public IEnumerable<T> QueryObjectGraph(Expression<Func<T, bool>> filter, params string[] children)
    {
        //ObjectQuery<T> query = ObjectSet;  //nope...requires 1 type argument
        //ObjectQuery<T> query = ObjectSet<T>; //nope......type used like variable
        // ObjectQuery<T> query = ObjectSet<T>(); //nope ...type used like variable
        //ObjectQuery<T> query = new ObjectSet<T>(); //nope...no constructors defined
        IQueryable<T> query;

        foreach (var child in children)
        {
            query = query.Include(child);
        }

        return query.Where(filter);
    }

1 Ответ

3 голосов
/ 23 ноября 2011

Расслабься, чувак.Не хотел звучать грубо.Вы просто не знаете, что делаете.Если вы посмотрите здесь http://msdn.microsoft.com/en-us/library/dd412719.aspx, вы увидите, что ObjectSet - это ObjectQuery, поэтому назначение работает.Но сначала вы должны создать ObjectSet!

"Так как я эксперт"

Удивительно, этот код работает

using (var ctx = new ModelContainer())
{
    ObjectQuery<Person> objectQuery = ctx.People;
}

, а тип ctx.People - ObjectSet

Что закомментировал ObjectSet в вашем коде?Где это создано?

...