---
title: "Cache helt objekt"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/168688-cache-helt-objekt"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "doggelito"
published: "2008-02-03T13:19:45.000Z"
updated: "2008-02-03T13:52:44.000Z"
replies: 2
views: 404
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/168688-cache-helt-objekt"
---

# Cache helt objekt

## #1 — doggelito, 2008-02-03T13:19Z

Jag vill mellanlagra en hel entityklass för att slippa anropa databas varje gång.
Är detta en korrekt metod? Trådsäkert?

aspx

```
        UserBll bll = new UserBll();
        User user = bll.GetUser(HttpContext.Current.User.Identity.Name);
        Response.Write(user.Suppliers[0].Name);
```

bll

```
        public User GetUser(string userName)
        {
            if (HttpContext.Current.Cache["User"] != null)
            {
                return (User)HttpContext.Current.Cache["User"];
            }
            else
            {
                UserDao dao = new UserDao();
                User User = dao.GetUser(userName);
                HttpContext.Current.Cache["User"] = User;
                return User;
            }
        }
```

Om cache innehåller en Userklass så returneras den rakt av utan att jämföra användarnamn. Men det måste väl vara ok eller?
För inte kan väl en annan användare få tillgång till just denna cache? :stud

Permalänk: https://www.webforum.nu/p/168688

## #2 — freguz, 2008-02-03T13:30Z

Jo Current.Cache\["User"\] blir ju samma för alla, som jag ser det.

För att istället få det användarunikt kan man ju:

```
        public User GetUser(string userName)
        {
            if (HttpContext.Current.Cache[userName] != null)
            {
                return (User)HttpContext.Current.Cache[userName]; // cache nyckeln blir unik per user
            }
            else
            {
                UserDao dao = new UserDao();
                User User = dao.GetUser(userName);
                HttpContext.Current.Cache.Add(userName, User, null, DateTime.Now.AddMinutes(10), Cache.NoSlidingExpiration,
                System.Web.Caching.CacheItemPriority.NotRemovable, null); // Lagra i cache i x antal minuter       
                return User;
            }
        }
```

Permalänk: https://www.webforum.nu/p/2077272

## #3 — doggelito, 2008-02-03T13:52Z

Aha! Vilken tur jag frågade då! För jag var rätt säker på att det hade fungerat! :)
Tack frequz! :bire

Permalänk: https://www.webforum.nu/p/2077276

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/168688-cache-helt-objekt
