как использовать sqlcachedependency для каждого пользователя в asp.net mvc - PullRequest
2 голосов
/ 25 января 2010

У меня есть приложение в asp.net mvc (C #), в котором у каждого пользователя разные продукты, использующие общую таблицу, разделенную идентификатором пользователя.

Мне нужно реализовать SqlCacheDependency для продуктов каждого пользователя.

Сценарий: скажем, есть два пользователя (user1 и user2) и продукты, назначенные для них на основе идентификатора пользователя.

Мне нужно кэшировать продукты, используя SqlCacheDependency для каждого пользователя, поскольку они не будут часто обновлять / изменять его. Мне нужно поддерживать кэш user1, даже когда продукты, принадлежащие user2, изменены.

Как мне сохранить SqlCacheDependency на основе идентификатора пользователя для продуктов, использующих общую таблицу?

1 Ответ

0 голосов
/ 25 января 2010

Может быть, это не SqlCacheDependency, который нужно кэшировать по идентификатору пользователя, а запись HttpContextCache.

Будет ли это работать для вас? (Я предполагаю, что userProducts будет вашим DataTable или List<Product>, в зависимости от ситуации.

var cmd = new SqlCommand("select * from product where user_id = @user_id");
cmd.Parameters.Add("@user_id", userId);
HttpContext.Current.Cache.Insert(string.Format("products:{0}", userId), userProducts, new SqlCacheDependency(cmd));
...