---
title: "MVC NHibernate"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/183601-mvc-nhibernate"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Fubar"
published: "2010-05-26T07:53:46.000Z"
updated: "2010-07-06T16:22:38.000Z"
replies: 4
views: 759
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/183601-mvc-nhibernate"
---

# MVC NHibernate

## #1 — Fubar, 2010-05-26T07:53Z

Har precis börjat med både MVC och NHibernate och stött på lite patrull.

Jag har 2 tabeller

Posts innehåller:
Id, Name, Content

Comments
Id, PostId, Message

PostController innehåller 2 actions, List och Details
där List skall returnera en förenklad struktur, tex Id, Name och antalet kommentarer. vill inte ladda alla kommentarer eller ens content från databasen för att inte ladda saker i onödan.

Hur bör jag gå tillväga? Testat att skapa 2 klasser (SimplePost och ExtendedPost som ärver av SimplePost men får då dubletter av varje rad (där ena kopian är SimplePost och den andra är ExtendedPost), detta löser dock inte problemet med att få ut antalet Kommentarer.

Ge gärna tips på bra läsning också ;)

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

## #2 — Fubar, 2010-05-26T13:38Z

Här kommer en liten uppdatering.

Databasen innehåller 2 rader.

Den här koden returnerar 4 object, först 2 av typen Post och sedan 2 av typen PostDetails.

```
        public IList<Post> ListLatest(int count)
        {
            using (ISession session = NHibernateHelper.OpenSession())
            {
               var posts = session.CreateQuery("select p from Post as p").List<Post>();
               return posts;
            }
        }
```

```
    public class Post
    {
        public virtual int PostId { get; private set; }
        public virtual string Title { get; set; }
        public virtual string Description { get; set; }
        public virtual DateTime CreatedDateTime { get; set; }
    }

    public class PostDetails : Post
    {
        public virtual string Contents { get; set; }
    }
```

```
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="HenrikJohansson" namespace="HenrikJohansson.Models">
    <class name="Post">
        <id name="PostId">
            <generator class="increment" />
        </id>
        <property name="Title" />
        <property name="Description" />
        <property name="CreatedDateTime" />
    </class>
</hibernate-mapping>
```

```
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="HenrikJohansson" namespace="HenrikJohansson.Models">
    <class name="PostDetails" table="Post">
        <id name="PostId">
            <generator class="increment" />
        </id>
        <property name="Title" />
        <property name="Description" />
        <property name="Contents" />
        <property name="CreatedDateTime" />
    </class>
</hibernate-mapping>
```

Är jag ute och cyklar så hjälp mig gärna in på banan igen ;)

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

## #3 — Walker, 2010-06-20T18:34Z

Hur går det?

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

## #4 — Fubar, 2010-07-06T14:17Z

Nä, fick inte till någon bra lösning på det hela så det ligger på is för tillfället :(
Tror det lutar åt att skippa nhibernate då jag inte får någon ordning på det

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

## #5 — Nickemannen, 2010-07-06T16:22Z

> **[Fubar skrev:](https://www.webforum.nu/p/1505729)**
>
> Här kommer en liten uppdatering.
> 
> Databasen innehåller 2 rader.
> 
> Den här koden returnerar 4 object, först 2 av typen Post och sedan 2 av typen PostDetails.
>
>
> ```
>         public IList<Post> ListLatest(int count)
>         {
>             using (ISession session = NHibernateHelper.OpenSession())
>             {
>                var posts = session.CreateQuery("select p from Post as p").List<Post>();
>                return posts;
>             }
>         }
> ```
>
> 
> 
> 
>
>
> ```
>     public class Post
>     {
>         public virtual int PostId { get; private set; }
>         public virtual string Title { get; set; }
>         public virtual string Description { get; set; }
>         public virtual DateTime CreatedDateTime { get; set; }
>     }
> 
>     public class PostDetails : Post
>     {
>         public virtual string Contents { get; set; }
>     }
> ```
>
> 
> 
> 
>
>
> ```
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="HenrikJohansson" namespace="HenrikJohansson.Models">
>     <class name="Post">
>         <id name="PostId">
>             <generator class="increment" />
>         </id>
>         <property name="Title" />
>         <property name="Description" />
>         <property name="CreatedDateTime" />
>     </class>
> </hibernate-mapping>
> ```
>
> 
> 
> 
>
>
> ```
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="HenrikJohansson" namespace="HenrikJohansson.Models">
>     <class name="PostDetails" table="Post">
>         <id name="PostId">
>             <generator class="increment" />
>         </id>
>         <property name="Title" />
>         <property name="Description" />
>         <property name="Contents" />
>         <property name="CreatedDateTime" />
>     </class>
> </hibernate-mapping>
> ```
>
> 
> 
> 
> Är jag ute och cyklar så hjälp mig gärna in på banan igen ;)

Det är inte så konstigt för du mappar 2 olika objekt mot samma mappning.
Din extendedpost skall vara subclass :) istället för class.

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/183601-mvc-nhibernate
