well we haven't heard how you are using this entity. Are you trying to iterate over a list in on an asp.net mvc page?
If this is the case, then your session only lasts the lifetime of the call and is closed once the page is returned. are you iterating over a collection in in a service layer call? are you keeping the session open the lifetime of the call? Lazy is the default loading because you don't want to automatically load a million child entities if you don't have to. On Tuesday, April 24, 2012, s-stude wrote: > So why I need this lazy feature if I need to keep my session alive? > Why just not to load all referenced data as well? > > On Apr 23, 9:18 pm, Fran Knebels <[email protected] <javascript:;>> > wrote: > > you can mark your collection mapping as not Lazy. > > > > Since you are returning proxies for the the collection, once you call > your > > method it's going to want to load the actual objects to fulfill your > > request. If you've disposed of the Session you'll get that error. > > > > > > > > > > > > > > > > On Monday, April 23, 2012, s-stude wrote: > > > Fran, thank you foy your response. > > > > > I agree that I don't need to map it, but I have an error > > > --- NHibernate.LazyInitializationException: > > > Initializing[Core.Entities.Topic#1]-failed to lazily initialize a > > > collection of role: Core.Entities.Topic.Votes, no session or session > > > was closed > > > > > If I remove the virtual keyword from this readonly property I get an > > > error like this > > > --- The following types may not be used as proxies: > > > Core.Entities.Topic: method get_VotedUpCount should be 'public/ > > > protected virtual' or 'protected internal virtual' > > > > > On Apr 23, 8:40 pm, Fran Knebels <[email protected] > > > <javascript:;><javascript:;>> > > > wrote: > > > > Why map it at all? The point of the mapping is to map domain > properties > > > to > > > > table columns. If this is just a convenience method for your domain > > > layer, > > > > you shouldn't have to map it all. > > > > > > On Monday, April 23, 2012, s-stude wrote: > > > > > Hi. > > > > > > > I'm using Nhibernate 3.2.0.4000 and FluentNHibernate 1.3.0.717. > > > > > > > I have next Entity > > > > > > > public class Topic : EntityBase > > > > > { > > > > > private readonly ICollection<Vote> _votes; > > > > > > > public virtual string Title { get; protected set; } > > > > > public virtual User CreatedBy { get; protected set; } > > > > > public virtual ICollection<Vote> Votes > > > > > { > > > > > get { return _votes; } > > > > > } > > > > > > > public virtual int VotedUpCount > > > > > { > > > > > get > > > > > { > > > > > return _votes.Count(v => v.VotedTo == > > > > > VoteType.VoteUp); > > > > > } > > > > > } > > > > > > > // .... > > > > > } > > > > > > > I need to map VotedUpCount because I get an error. But I don't need > > > > > this column in my table. I just want to get real-world domain > entity. > > > > > > > I tried this one: > > > > > > > public class TopicMap : ClassMap<Topic> > > > > > { > > > > > public TopicMap() > > > > > { > > > > > Id(x => x.Id); > > > > > Map(x => x.Title); > > > > > Map(x => x.VotedUpCount).Access.ReadOnly(); > > > > > Map(x => x.VotedDownCount).Access.ReadOnly(); > > > > > References(x => x.CreatedBy); > > > > > HasMany<Vote>(x => x.Votes) > > > > > .Cascade.All(); > > > > > } > > > > > } > > > > > > > But I recieve an error Invalid column name 'VotedUpCount'. > > > > > Is there any way to map it in the proper way? > > > > > > > -- > > > > > You received this message because you are subscribed to the Google > > > Groups > > > > > "nhusers" group. > > > > > To post to this group, send email to > > > > > [email protected]<javascript:;> > <javascript:;> > > > <javascript:;> > > > > > . > > > > > To unsubscribe from this group, send email to > > > > > [email protected] <javascript:;><javascript:;> > > > > > <javascript:;>. > > > > > For more options, visit this group at > > > > >http://groups.google.com/group/nhusers?hl=en. > > > > > -- > > > You received this message because you are subscribed to the Google > Groups > > > "nhusers" group. > > > To post to this group, send email to > > > [email protected]<javascript:;> > <javascript:;> > > > . > > > To unsubscribe from this group, send email to > > > [email protected] <javascript:;> <javascript:;>. > > > For more options, visit this group at > > >http://groups.google.com/group/nhusers?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To post to this group, send email to [email protected]<javascript:;> > . > To unsubscribe from this group, send email to > [email protected] <javascript:;>. > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > > -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
