---
title: "Placering av enum i 3-skiktsmodell"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/168411-placering-av-enum-i-3-skiktsmodell"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "doggelito"
published: "2008-01-25T08:51:25.000Z"
updated: "2008-01-25T10:09:04.000Z"
replies: 2
views: 630
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/168411-placering-av-enum-i-3-skiktsmodell"
---

# Placering av enum i 3-skiktsmodell

## #1 — doggelito, 2008-01-25T08:51Z

En dropdowlist ska bindas.
aspx:

```
        IList<Category> categories = Bll.GetCategories(IncludeRootCategory.Yes);
        DropDownList parent = (DropDownList)fvCategory.FindControl("Parent");
        parent.DataSource = categories;
        parent.DataTextField = "Name";
        parent.DataValueField = "Id";
        parent.DataBind();
```

bll:

```
public IList<Category> GetCategories(IncludeRootCategory includeRootCategory)
{
        CategoryDao dao = new CategoryDao();
        return dao.GetCategories(includeRootCategory);
}

[b]public enum IncludeRootCategory
{
        Yes,
        No
}[/b]
```

dao:

```
public IList<Category> GetCategories([b]bool[/b] includeRootCategory)
{
        IList<Category> categoryList = CurrentSession.CreateCriteria(typeof(Category)).List<Category>();

        if (!includeRootCategory)
                categoryList.RemoveAt(0);

        return categoryList;
}
```

aspx --\> bll --\> dao

Problemet/felet med koden är att metoden i dao tar emot en bool medans metoden i bll skickar och tar emot en IncludeRootCategory.
Kan jag möblera om så att IncludeRootCategory kan användas genom hela kedjan?

En dålig lösning skulle vara att flytta enumen till dao men det betyder då att aspx måste ha en koppling dit på detta vis:

```
IList<Category> categories = Bll.GetCategories(CategoryDao.IncludeRootCategory.Yes);
```

alt. att låta enumen vara i bll och låta dao har åtkomst dit.

En annan variant är att göra en *switch* i bll som kollar IncludeRootCategory och sedan skickar vidare en *bool* beroende på värde men det känns heller inte korrekt!

Så wF:ar, hur bör jag göra?   :)

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

## #2 — erka, 2008-01-25T09:58Z

Du exponerar ju dina domänobjekt som Category i aspx:en, lägg enumen där du har dina domänobjekt

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

## #3 — doggelito, 2008-01-25T10:09Z

Ahh, så klart! Tack erka. :bire

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/168411-placering-av-enum-i-3-skiktsmodell
