http://automapper.codeplex.com/ http://groups.google.com/group/automapper-users?hl=en
--- Patrick Steele http://weblogs.asp.net/psteele On Wed, Oct 27, 2010 at 10:10 AM, Ivan Bolčina <[email protected]>wrote: > Hi. > > I have written 3-tier application,where server loads/saves stuff, and for > DTOs are used AR. > > Since on client, I dont use save/load/etc, they act as simple POCO. > > > > I think that whats great about AR is that there is no mapping, but having > separate DTO is another form of mapping. > > > > Where can I learn more about AutoMapper? > > > > BR,ivan > > > > *From:* [email protected] [mailto: > [email protected]] *On Behalf Of *Markus Zywitza > *Sent:* Tuesday, October 26, 2010 8:19 PM > *To:* [email protected] > *Subject:* Re: two questions > > > > Lazy is perfect for n-tier situations, when you use DTOs and AutoMapper. > > If you have a 2-tier (client/database) app, chances are good, that some > collections are never needed, so laziness saves you from loading to much. > > In a 3-tier app, you should use DTOs specialized for the query and > AutoMapper to fill them. Then laziness is necessary to not load properties > that are not mapped to the requested DTOs. > > Sharing AR objects between server and client in a 3-tier app is not > recommended at all, lazy or not. > > -Markus > > 2010/10/23 Ivan Bolčina <[email protected]> > > Say, is there a way to specify this: > > Blog : Posts > > > > Load a blog by id, but leave posts empty. On save don't save posts. > > > > But, if there is explicit call, lets say blog.LoadPosts(), then posts would > be loaded and therefore a relation would be »normal«. > > > > The reason is that I found that there are so many sqls executing – it is > logical, because objects are in relation, but i would like to be more in > control (n-tier situation). Lazy is not good for n-tier situations. > > > > Right now I have this configured like this. > > Blog has a array of posts(POSTS), but it is NOT attributesied as HasMany. > > Post has a BLOG property, but it is also NOT attibutiesed as BelongsTo > > > > When I need to send those to client, i manually fill necessary details. > > > > But is there a way to run-time attributise an element, say array of posts > in a blog, and then load it using this run-time attributisation? > > > > Hope you understand this. > > > > Br,ivan > > > > *From:* [email protected] [mailto: > [email protected]] *On Behalf Of *Markus Zywitza > *Sent:* Wednesday, October 20, 2010 9:29 PM > > > *To:* [email protected] > *Subject:* Re: two questions > > > > It is not N+1, it is 2. > > Assume you have Blog : Posts as 1 : n with a non-lazy posts collection. > If you load a blog, there are 2 queries - one for the blog and one for all > posts. > > N+1 occurs when you have 1 : n with a lazy collection and you are > enumerating the collection. Then you have one query for the blog and n > queries for n posts. > > As a result, if your collection is not lazy, there is no N + 1. So the > Eager=true flag would be only useful if you had a lazy collection, > nullifying the laziness because of eager loading. > > Eager loading is useful in the case you have a lazy collection but you know > that you need to load all the referenced entities. Then you can specify in a > query, that in this situation there should be no lazy loading, but getting > all the childs at once. > > -Markus > > 2010/10/20 Ivan Bolčina <[email protected]> > > Sorry, I ment why is there not a simple way to do 1 query instead of N+1? > > > > > > > > *From:* [email protected] [mailto: > [email protected]] *On Behalf Of *Markus Zywitza > *Sent:* Wednesday, October 20, 2010 4:50 PM > > > *To:* [email protected] > *Subject:* Re: two questions > > > > Because that's the default behaviour. If you do not specify lazyness, all > entities referenced from a loaded entity are loaded directly after it. > Lazyness is used to stop NH/AR from loading objects that are not needed. > > > > -Markus > > 2010/10/20 Ivan Bolčina <[email protected]> > > Hi. > > > > Why isnt there a flag in relation like lazy but for eager loading? > > > > *From:* [email protected] [mailto: > [email protected]] *On Behalf Of *Roelof Blom > *Sent:* Tuesday, October 19, 2010 9:07 AM > > > *To:* [email protected] > *Subject:* Re: two questions > > > > > http://stw.castleproject.org/Active%20Record.Tuning%20(performance%20improvements).ashx<http://stw.castleproject.org/Active%20Record.Tuning%20%28performance%20improvements%29.ashx> > > On Tue, Oct 19, 2010 at 8:21 AM, Ivan Bolčina <[email protected]> > wrote: > > Wow, nice... How come I didn't find anything in documentation. > > > > Also, is there fetch join in active record? > > > > *From:* [email protected] [mailto: > [email protected]] *On Behalf Of *Roelof Blom > *Sent:* Monday, October 18, 2010 12:52 PM > *To:* [email protected] > *Subject:* Re: two questions > > > > Inline > > On Mon, Oct 18, 2010 at 9:59 AM, Ivan Bolčina <[email protected]> > wrote: > > Hi. > > > > Two questions: > > 1. Is there a LINQ to Caste active record? > > Yes, use the extension methods in > Castle.ActiveRecord.Framework.ActiveRecordLinq, > > or derive from ActiveRecordLinqBase<T> > > 2. What is the best way to write simple queries like »...where name > like '%john%' and age>10« > > use the PredicateBuilder > <http://www.albahari.com/nutshell/predicatebuilder.aspx>class on > the IQueryable supplied by ActiveRecord > > > > Thanks > > > > Ivan Bolčina > SOFTWARE DEVELOPMENT > MANAGER > > [email protected] > > tel: +386 51 680 415 > > > > www.apida.si > > > > > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Development List" group. > To post to this group, send email to [email protected] > . > To unsubscribe from this group, send email to > [email protected]<castle-project-devel%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/castle-project-devel?hl=en. > > > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Development List" 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/castle-project-devel?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Development List" group. > To post to this group, send email to [email protected] > . > To unsubscribe from this group, send email to > [email protected]<castle-project-devel%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/castle-project-devel?hl=en. > > > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Development List" 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/castle-project-devel?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Development List" group. > To post to this group, send email to [email protected] > . > To unsubscribe from this group, send email to > [email protected]<castle-project-devel%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/castle-project-devel?hl=en. > > > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Development List" 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/castle-project-devel?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Development List" group. > To post to this group, send email to [email protected] > . > To unsubscribe from this group, send email to > [email protected]<castle-project-devel%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/castle-project-devel?hl=en. > > > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Development List" 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/castle-project-devel?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Development List" group. > To post to this group, send email to [email protected] > . > To unsubscribe from this group, send email to > [email protected]<castle-project-devel%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/castle-project-devel?hl=en. > > > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Development List" 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/castle-project-devel?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Development List" group. > To post to this group, send email to [email protected] > . > To unsubscribe from this group, send email to > [email protected]<castle-project-devel%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/castle-project-devel?hl=en. > -- You received this message because you are subscribed to the Google Groups "Castle Project Development List" 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/castle-project-devel?hl=en.
<<image001.png>>
