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.
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; }
}
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
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; }
}