запросить список динамических объектов - PullRequest
2 голосов
/ 12 января 2012

Я использую массив , чтобы получить таблицу конфигурации в базе данных. Я хотел бы кэшировать конфигурацию, так как приложение получает значения из него все время.

после кэширования есть простой способ найти объект, где name = 'кое-что'

здесь вся таблица кэшируется.

    protected override dynamic Get()
    { 
        var ret = HttpRuntime.Cache["Config"]; 
        if (ret == null)
        { 
            ret = _table.All(); 
            HttpRuntime.Cache.Add("Config", ret, null, DateTime.Now.AddMinutes(2), Cache.NoSlidingExpiration,CacheItemPriority.Low, null );
        }
        return ret; 
    } 

Здесь я хотел бы извлечь одну запись из этого метода

    protected override dynamic Get(string name)
    {
        return this.Get().Where(x => x.Name == name ).SingleOrDefault(); 
    }

Я знаю, что операторы linq или lambda недопустимы в динамических объектах. но каков следующий лучший способ вытащить этот один объект из этого списка?

1 Ответ

1 голос
/ 12 января 2012

Вы не можете записать выражение lamda непосредственно в качестве аргумента Where, но вы можете присвоить его переменной Func.Кроме того, я считаю, что методы расширения не будут работать с динамическими объектами, поэтому вы должны вызывать метод расширения напрямую.

...