2

asp.net mvc (C#) にアプリケーションがあり、各ユーザーは、ユーザー ID で区切られた共通のテーブルを共有するさまざまな製品を持っています。

SqlCacheDependencyユーザーの製品ごとに実装する必要があります。

シナリオは次のとおりです。2 人のユーザー (user1 と user2) があり、ユーザー ID に基づいて製品が割り当てられているとします。

SqlCacheDependency頻繁に更新/変更しないため、ユーザーごとに使用する製品をキャッシュする必要があります。user2 に属する製品が変更された場合でも、user1 のキャッシュを維持する必要があります。

SqlCacheDependency共通テーブルを共有する製品のユーザー ID に基づいて、どのように維持できますか?

4

1 に答える 1

0

おそらく、ユーザー ID でキャッシュする必要があるのは 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));
于 2010-01-25T20:19:16.907 に答える