Получение ссылки на свойство AsCached в ObjectContext для Entity Framework 4.1 - PullRequest
0 голосов
/ 23 ноября 2011

Мой ObjectContext открыт как публичное свойство, и я могу получить к нему доступ через мой DBContext.

Я хочу включить кэширование для выпадающего списка. Требуется свойство AsCached . Тем не менее, я не могу заставить его отображаться в intellisense. Нужно ли для него включать определенное пространство имен?

Вот мой существующий оператор LINQ, который я хочу кэшировать.

IQueryable<Category> category = DbContext.Categories.Where(p => p.CategoryID > 0);

Я пытаюсь сделать что-то подобное. Обратите внимание, что при размещении "." нет intellisense. после Objectcontext.

IQueryable<Category> category = DbContext.Objectcontext.Categories.AsCached.Where(p => p.CategoryID > 0);

ObjectContext появляется в intellisense, но не в свойстве AsCached.

Как можно отобразить свойство AsCached?

1 Ответ

1 голос
/ 25 ноября 2011

Вы ссылаетесь на свойство AsCached, описанное здесь Получаете ссылку на свойство AsCached ?В этом случае это, кажется, расширение EF под названием linqtocache .

EDIT

Я не думаю, что вам нужно выставлять ObjectContext.Допустим, у вас есть DbContext, который выглядит следующим образом:

public class DatabaseContext : DbContext
{
    public DatabaseContext(string name) : base(name)
    {
        As = Set<A>();
    }

    public DbSet<A> As { get; private set; }
}

AsCached, в контексте linqtocache, является методом расширения IQueryable, поэтому в вызывающем его коде вы можете получить доступ к свойству AsCached, выполнивэто:

using LinqToCache;

namespace MyApplication
{
    class Program
    {
        static void Main()
        {
            var ctx = new DatabaseContext("ScalabilityTestEntities");

            ctx.As.AsCached("Key").Where(p => p.CategoryID > 0);          
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...