<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Wilson ORMapper Forums : Feature Requests</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=rss&amp;id=2&amp;key=uZDk%2bu72cehS9caXs%2bHauA%3d%3d</link><description>Wilson ORMapper Forums : Feature Requests</description><item><title>It's been a Year</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2518&amp;key=UFP%2fOa8r3zWEpKpSU0Ki%2bw%3d%3d&amp;post=7601</link><pubDate>Wed, 02 May 2007 02:50:09 GMT</pubDate><description>&lt;P&gt;Paul,&lt;/P&gt;
&lt;P&gt;Did you ever consider using a secure, shared source repository for subscriber-only access? This would also help in getting people to contribute their own patches and such...&lt;/P&gt;
&lt;P&gt;Brian&lt;BR&gt;&lt;A href="http://www.sidesofmarch.com/"&gt;http://www.sidesofmarch.com/&lt;/A&gt;&lt;/P&gt;</description></item><item><title>Wilson ORMapper for: WAMPS? (Windows Server 2003 Apache MySQL Php or SQL Server ?</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2517&amp;key=ZSJkoJ1sk1f3VoOSSNeuhw%3d%3d&amp;post=7597</link><pubDate>Tue, 01 May 2007 23:17:57 GMT</pubDate><description>&lt;P&gt;Hi Adam:&lt;/P&gt;
&lt;P&gt;The short answer is that I'm a .NET consultant, and that's not going to change.&amp;nbsp; Its not that I have anything against other platforms, but they don't pay my bills.&amp;nbsp; Have you looked for O/RMs for LAMP?&amp;nbsp; Java has Hibernate, and Ruby on Rails is very O/RM-like, so I would have expected something for LAMP too.&lt;/P&gt;
&lt;P&gt;Good luck, Paul Wilson&lt;/P&gt;</description></item><item><title>Wilson ORMapper for: WAMPS? (Windows Server 2003 Apache MySQL Php or SQL Server ?</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2517&amp;key=ZSJkoJ1sk1f3VoOSSNeuhw%3d%3d&amp;post=7591</link><pubDate>Tue, 01 May 2007 23:14:24 GMT</pubDate><description>&lt;P&gt;Hi!&lt;/P&gt;
&lt;P&gt;By way of introduction: I am a registered user. I am grateful that I stumbled on your site when I was going through a period not long ago where I really wanted to &lt;EM&gt;start&lt;/EM&gt; to understand OR mappers and DB abstraction layers, at least at a high level, as&amp;nbsp;I had&amp;nbsp;decided to&amp;nbsp;learn&amp;nbsp;how to do OO development, and not just BS about it, after being an&amp;nbsp;SQL/VBScript web-enable-the-DB&amp;nbsp;guy in monolithic&amp;nbsp;IT shops (Digital, CPQ, HP) for many years - some other cool things here there too&amp;nbsp;like stints @ two VC backed start-ups, one still going strong &lt;A href="http://www.ide.com"&gt;http://www.ide.com&lt;/A&gt; , where I&amp;nbsp;learned a lot about process and dev teams through pain!&lt;/P&gt;
&lt;P&gt;Part of this journey is that I&amp;nbsp;have&amp;nbsp;made&amp;nbsp;the change form the&amp;nbsp;Windows IT Stack to LAMP. I took&amp;nbsp;a very modest position at a small, but filled with talent, &amp;nbsp;consultancy in Cambridge MA &lt;A href="http://www.isovera.com"&gt;http://www.isovera.com&lt;/A&gt; , that is entirely focused on app dev using Open Source tools &amp;amp; platforms specifically for&amp;nbsp;non-profits.&amp;nbsp;I am&amp;nbsp;being&amp;nbsp;allowed to work on becoming&amp;nbsp;a competent&amp;nbsp;OOD &amp;nbsp;and LAMP-skilled person,&amp;nbsp;and until then, they throw&amp;nbsp;all the&amp;nbsp;windows/SQL Server stuff at me and&amp;nbsp;no one seems to complain.&lt;/P&gt;
&lt;P&gt;My Question: I want to become a competent&amp;nbsp;developer&amp;nbsp;with OO data tiers &amp;amp; abstraction layers and OO&amp;nbsp;frameworks, and to be able to recognize what make&amp;nbsp;one OR Mapper implementation / or&amp;nbsp;DB abstraction layer superior to another. I understand this is a long-term process. I also understand and&amp;nbsp;have decided that this will require a&amp;nbsp;non-billable project&amp;nbsp;that will command a long-term committment. &lt;/P&gt;
&lt;P&gt;I would like to know if you have plans to "port" your work to the LAMP platform, or make it "interoperable" in some way, and/or if you would give consideration&amp;nbsp;to guiding&amp;nbsp;me in the right direction to do the work that would be required to leverage your ORMapper and your ideas to function in a LAMP environment,&amp;nbsp;the back-end DB can stay SQL Server, I like SQL Server! &lt;/P&gt;
&lt;P&gt;I do apologize for the length of this email, but i wanted you to know where iwas coming from with my questons. Regards,&lt;/P&gt;
&lt;P&gt;Adam&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>It's been a Year</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2518&amp;key=UFP%2fOa8r3zWEpKpSU0Ki%2bw%3d%3d&amp;post=7596</link><pubDate>Tue, 01 May 2007 23:14:03 GMT</pubDate><description>&lt;P&gt;I would like to do that -- I've made too many hopeful dates that didn't pan though, so all I can say is I will when I can.&lt;/P&gt;
&lt;P&gt;Thanks, Paul Wilson&lt;/P&gt;</description></item><item><title>It's been a Year</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2518&amp;key=UFP%2fOa8r3zWEpKpSU0Ki%2bw%3d%3d&amp;post=7592</link><pubDate>Tue, 01 May 2007 23:12:57 GMT</pubDate><description>&lt;P&gt;Hi Paul,&lt;/P&gt;
&lt;P&gt;It has been over a year since the last major update.&amp;nbsp; I think there have been a few posts outlining some fixes.&amp;nbsp; I would like the transaction rollback feature as well.&lt;/P&gt;
&lt;P&gt;Do you think you can release a new version sometime soon?&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Nick&lt;/P&gt;</description></item><item><title>SQL Server Compact Edition</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2501&amp;key=e5%2bS8SNnhCNKfhB9MjgvFw%3d%3d&amp;post=7538</link><pubDate>Tue, 27 Mar 2007 18:44:33 GMT</pubDate><description>&lt;P&gt;&lt;A href="/Forums/Default.aspx?part=74&amp;amp;action=thread&amp;amp;id=830&amp;amp;key=M2gBbeyCOJ5Neo8TgUi9ug%3d%3d"&gt;http://ormapper.net/Forums/Default.aspx?part=74&amp;amp;action=thread&amp;amp;id=830&amp;amp;key=M2gBbeyCOJ5Neo8TgUi9ug%3d%3d&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Never tried it myself but you would think it would work.&lt;/P&gt;</description></item><item><title>SQL Server Compact Edition</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2501&amp;key=e5%2bS8SNnhCNKfhB9MjgvFw%3d%3d&amp;post=7535</link><pubDate>Mon, 26 Mar 2007 19:23:28 GMT</pubDate><description>&lt;P&gt;Yea, I realize there's not a hard-coded provider, but there is a CustomProvider option that is used for MySql and many other databases.&amp;nbsp; So I'm wondering if you've tried that and had any luck or problems.&amp;nbsp; That should work for most cases pretty well, at least that would be my guess, and I guess I'm hoping to avoid another hard-coded provider if it isn't necessary.&lt;/P&gt;
&lt;P&gt;Thanks, Paul Wilson&lt;/P&gt;</description></item><item><title>SQL Server Compact Edition</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2501&amp;key=e5%2bS8SNnhCNKfhB9MjgvFw%3d%3d&amp;post=7529</link><pubDate>Mon, 26 Mar 2007 15:30:21 GMT</pubDate><description>&lt;P&gt;hi Paul,&lt;/P&gt;
&lt;P&gt;No, I haven't tried the SQL Server Compact Edition. There's no driver/provider provided (excuse the pun). &lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Sean&lt;/P&gt;</description></item><item><title>SQL Server Compact Edition</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2501&amp;key=e5%2bS8SNnhCNKfhB9MjgvFw%3d%3d&amp;post=7528</link><pubDate>Mon, 26 Mar 2007 12:38:03 GMT</pubDate><description>&lt;P&gt;So have you tried using the mapper with Sql CE?&amp;nbsp; If not, I would recommend that you try.&amp;nbsp; If you have, what worked and what didn't work?&lt;/P&gt;
&lt;P&gt;Thanks, Paul Wilson&lt;/P&gt;</description></item><item><title>SQL Server Compact Edition</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2501&amp;key=e5%2bS8SNnhCNKfhB9MjgvFw%3d%3d&amp;post=7527</link><pubDate>Mon, 26 Mar 2007 08:36:37 GMT</pubDate><description>&lt;P&gt;Hi Paul,&lt;/P&gt;
&lt;P&gt;I've used SQLExpress for a good while now also. However, with SQLExpress, as with MSDE before that, there's a lengthy and often complicated installation process. SQL Server Compact Ed has practically no installation, as it's an inproc DB. In fact, the DLLs can be deployed with the application installation - no cumbersome database installation necessary!&lt;/P&gt;
&lt;P&gt;I don't know why it would not be possible to use the generic ADO.NET classes SQLconnection, SQLCommand, etc. In fact, I think the latest version of the Enterprise Library (3.0) now encorporates SQLCE data classes.&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Sean&lt;/P&gt;</description></item><item><title>SQL Server Compact Edition</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2501&amp;key=e5%2bS8SNnhCNKfhB9MjgvFw%3d%3d&amp;post=7525</link><pubDate>Sun, 25 Mar 2007 22:20:21 GMT</pubDate><description>&lt;P&gt;The ORMapper works with Sql Express, which I would have thought would be sufficient for desktop applications since it is free.&amp;nbsp; There's probably something obvious I've missed, but what does Sql CE bring to the desktop that causes you to choose it?&amp;nbsp; I'm curious for my own interest, but regardless of your answer, I would still like to think that I could support Sql CE possibly too.&amp;nbsp; I haven't worked with Sql CE in a long time though, and never much, so anything you can tell me about what doesn't work with the ORMapper would be helpful.&lt;/P&gt;
&lt;P&gt;Thanks, Paul Wilson&lt;/P&gt;</description></item><item><title>SQL Server Compact Edition</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2501&amp;key=e5%2bS8SNnhCNKfhB9MjgvFw%3d%3d&amp;post=7523</link><pubDate>Sun, 25 Mar 2007 14:41:44 GMT</pubDate><description>&lt;P&gt;Is there any plans to make and/or test WORM against the SQL Server Compact Edition. I'm currently using the Compact Edition for a desktop application, and would benefit greatly from being able to use the ORM therein.&lt;/P&gt;
&lt;P&gt;Many thanks,&lt;/P&gt;
&lt;P&gt;Sean&lt;/P&gt;</description></item><item><title>Doing a read in a transaction</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2171&amp;key=mqV4I2zLqbccWvURjfmt%2fA%3d%3d&amp;post=7352</link><pubDate>Thu, 21 Dec 2006 16:18:39 GMT</pubDate><description>&lt;P&gt;Suberb! That's great news. This is the only thing&amp;nbsp;that bugs me during development with WORM so a fix will make your product&amp;nbsp;pretty much&amp;nbsp;perfect for me!&lt;/P&gt;
&lt;P&gt;Thanks Paul!&lt;/P&gt;
&lt;P&gt;Stephen.&lt;/P&gt;</description></item><item><title>Doing a read in a transaction</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2171&amp;key=mqV4I2zLqbccWvURjfmt%2fA%3d%3d&amp;post=7300</link><pubDate>Sat, 25 Nov 2006 02:04:16 GMT</pubDate><description>&lt;P&gt;Looking forward to this feature.&lt;/P&gt;
&lt;P&gt;It will nake cleaning up after a NUnit test alot easier.&amp;nbsp; I follow the patterns suggested ny NewKirk and Vorontsov in their book Test Driven Development in Microsoft .NET&lt;/P&gt;</description></item><item><title>Doing a read in a transaction</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2171&amp;key=mqV4I2zLqbccWvURjfmt%2fA%3d%3d&amp;post=7295</link><pubDate>Fri, 17 Nov 2006 14:28:23 GMT</pubDate><description>&lt;P&gt;Light at the end of the tunnel is always good :-)&lt;BR&gt;Thanks for the reply, Dirk&lt;/P&gt;</description></item><item><title>Doing a read in a transaction</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2171&amp;key=mqV4I2zLqbccWvURjfmt%2fA%3d%3d&amp;post=7290</link><pubDate>Thu, 16 Nov 2006 21:38:25 GMT</pubDate><description>&lt;P&gt;Hi Dirk:&lt;/P&gt;
&lt;P&gt;I've recently changed jobs, partly to get back some of my free time, but I'm also still in that transitional&amp;nbsp;mode that you always have when you start new jobs.&amp;nbsp; But the good news is that I can see the light at the end of the tunnel now, so I think its very reasonable to expect an SP with that before the end of the year, and hopefully the next official release not too far after that.&lt;/P&gt;
&lt;P&gt;Thanks, Paul Wilson&lt;/P&gt;</description></item><item><title>Doing a read in a transaction</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2171&amp;key=mqV4I2zLqbccWvURjfmt%2fA%3d%3d&amp;post=7286</link><pubDate>Thu, 16 Nov 2006 13:44:23 GMT</pubDate><description>&lt;P&gt;Hi Paul,&lt;/P&gt;
&lt;P&gt;Any estimate on a SP date&amp;nbsp;with the Transaction.GetObjectXXX ?&lt;BR&gt;No pressure, just informing whether I can wait or should get started&amp;nbsp;on a work-around.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;BR&gt;Dirk&lt;/P&gt;</description></item><item><title>Query Features</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2334&amp;key=i5SRXgHWcq9URys8nK4KIA%3d%3d&amp;post=7165</link><pubDate>Tue, 19 Sep 2006 18:56:57 GMT</pubDate><description>&lt;P&gt;Hi, &lt;/P&gt;
&lt;P&gt;I think this video has very good ideas (Query facilities) to put in this excellent ORMapper tool: &lt;BR&gt;&lt;A href="http://www.wekeroad.com/actionpackintro.html"&gt;http://www.wekeroad.com/actionpackintro.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Cheers&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Add Composite Key Support to Generic ObjectSet</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2103&amp;key=CqItoW1hRhrouNTbJk%2fuiQ%3d%3d&amp;post=7078</link><pubDate>Wed, 30 Aug 2006 20:00:59 GMT</pubDate><description>&lt;P&gt;Paul,&lt;/P&gt;
&lt;P&gt;Do you know when this issue might be cleared up?&amp;nbsp; I ran into it via a Composite Key mapping via a Relation.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Chris Trout&lt;/P&gt;</description></item><item><title>EntityMap &amp; FormatException</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2230&amp;key=Gnv%2fHkr5Hx3LiLhkU6haLQ%3d%3d&amp;post=6912</link><pubDate>Fri, 14 Jul 2006 22:02:41 GMT</pubDate><description>I'll consider this -- it look good.&amp;nbsp; By the way, this code should only be executing on the initialization, which is one reason its not been optimized much.&lt;br&gt;&lt;br&gt;Thanks, Paul Wilson&lt;br&gt;</description></item><item><title>EntityMap &amp; FormatException</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2230&amp;key=Gnv%2fHkr5Hx3LiLhkU6haLQ%3d%3d&amp;post=6910</link><pubDate>Fri, 14 Jul 2006 22:01:28 GMT</pubDate><description>&lt;P&gt;The constructors for EntityMap contain the following code block:&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face="Courier New" size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;try {&lt;BR&gt;&amp;nbsp;if (typeValue == null) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;this.typeValue = null;&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;else {&lt;BR&gt;&amp;nbsp;&amp;nbsp;this.typeValue = int.Parse(typeValue);&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;}&lt;BR&gt;catch {&lt;BR&gt;&amp;nbsp;this.typeValue = typeValue.Trim('\'');&lt;BR&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face="Courier New" size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;If you happen to turn on the debugging feature to stop at every thrown exception, this code block becomes kind of annoying, because it gets hit fairly frequently in our app. I rewrote it as follows:&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face="Courier New" size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;int tempInt;&lt;BR&gt;if( typeValue == null )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.typeValue = null;&lt;BR&gt;else if( int.TryParse( typeValue, out tempInt ) )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.typeValue = tempInt;&lt;BR&gt;else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.typeValue = typeValue.Trim( '\'' );&lt;/SPAN&gt;&lt;/FONT&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;/o:p&gt;This also avoids using exceptions as a flow-of-control construct in the code.&amp;nbsp;&lt;/P&gt;</description></item><item><title>ObjectSpan / LoadSpan</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=1864&amp;key=UWr781a5Ub3Ya4h3jQIlFg%3d%3d&amp;post=6803</link><pubDate>Wed, 21 Jun 2006 02:40:43 GMT</pubDate><description>Have you made any plans/decisions on whether or not supporting a LoadSpan/Fetch option is something you'll be adding to the mapper?&amp;nbsp; As you know this is high on my list of features that I'd like to see incorporated into your mapper.&lt;br&gt;</description></item><item><title>Optionally initialize relation</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2197&amp;key=YN64cC1MIPtAdZbH63O8cw%3d%3d&amp;post=6800</link><pubDate>Tue, 20 Jun 2006 14:49:09 GMT</pubDate><description>Hi Paul,&lt;br&gt;&lt;br&gt;Trying my request again but logged in this time.&lt;br&gt;&lt;br&gt;Currently the relations are always initialized in your object Instance, in its internal constructor if the related field represents a parent. I need this initialization to be optional, so the parent can be null (in my situation that's the default). &lt;br&gt;&lt;br&gt;Ideally the OR mapper deduces this from whether the reference id field is nullable. This feature would really help me out, because the alternative would be quite ugly. After doing a GetObject, or StartTracking I would have to go over my whole object structure and set properties to null again.&lt;br&gt;&lt;br&gt;If you agree to such a feature I'd be happy to implement it myself and send you the code.&lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;&lt;br&gt;Wout&lt;br&gt;&lt;br&gt;e-mail: wout at woutware dot com&lt;br&gt;&lt;br&gt;</description></item><item><title>Doing a read in a transaction</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2171&amp;key=mqV4I2zLqbccWvURjfmt%2fA%3d%3d&amp;post=6753</link><pubDate>Mon, 05 Jun 2006 16:06:46 GMT</pubDate><description>Look forward to getting the new version with this in it.</description></item><item><title>Serializable ObjectSpace</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2166&amp;key=%2b%2foYc9GK8uHaNKF37o2zJg%3d%3d&amp;post=6749</link><pubDate>Sat, 03 Jun 2006 00:07:40 GMT</pubDate><description>Hey Doug:&lt;br&gt;&lt;br&gt;Well I wouldn't ever say your design is unacceptable, its just different.&amp;nbsp; I'll consider it a little more, as I do see your point.&amp;nbsp; We can debate forever whether its better to be loosely coupled or more context aware, but in the end there are pros and cons both ways, so I'm inclined to provide you the option -- except that I'm pretty sure I won't be testing that option and I'll have to make that clear, since I'm not sure what impact it may have on performance or other things.&lt;br&gt;&lt;br&gt;Thanks, Paul Wilson&lt;br&gt;</description></item><item><title>Serializable ObjectSpace</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2166&amp;key=%2b%2foYc9GK8uHaNKF37o2zJg%3d%3d&amp;post=6733</link><pubDate>Sat, 03 Jun 2006 00:03:47 GMT</pubDate><description>&amp;nbsp;Hi Paul,
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I don’t see how this design is any better positioned for SOA than the one I suggested.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;One way or another, the Insert-Update-Unchanged state has to be tracked.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Your design is better in a chatty environment with lots of persisted data, but requires the application to track that state.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Mine allows reduced code and virtually eliminates coupling between the application and the ORM…&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;it lets the ObjectSpace do what it is meant to do.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I had considered your design, but moved away from it because of a few unsavory implications:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;- After fetching a complex graph, we would have to traverse the graph to mark each class as having come from the database.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This state would have to be added to the each object in the graph, forcing the objects to change where (I would argue) they should not have to.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;- Each object would be responsible for keeping track of when it changes, so it can distinguish between Unchanged or Updated.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I get your point on always update, but that would not work for our auditing system.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Another problem I have with this that it is prone to error, and would force us to change entity class code where (again I would argue) they should not need to change.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;- Our remoting design calls for remoted classes to transparently run locally if configured so.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Assuming we would want to be able to reuse the object space if possible, the changes required in the entity classes (discussed above) would have to be made aware of whether they are working in a remoted environment or not, and StartTracking should not be called if running locally.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I’m not convinced that our design is unacceptable.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I am aware of the performance concerns, but I think we are OK for our environment.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This will be validated in time.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I got the idea from reading about how the NHibernate ISession is sometimes put onto CallContext.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;We are prepared to maintain this change ourselves, so I’m not trying to push you to make a change you are not comfortable with.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I just thought it might be a nice design option for your clients.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;- Doug&lt;/P&gt;</description></item><item><title>Doing a read in a transaction</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2171&amp;key=mqV4I2zLqbccWvURjfmt%2fA%3d%3d&amp;post=6732</link><pubDate>Tue, 30 May 2006 08:59:59 GMT</pubDate><description>Its coming in the next release (this particular part is already mostly done, but I'm running very short on time getting the rest done lately, even to get a subscriber preview out).&lt;br&gt;&lt;br&gt;Thanks, Paul Wilson&lt;br&gt;</description></item><item><title>Doing a read in a transaction</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2171&amp;key=mqV4I2zLqbccWvURjfmt%2fA%3d%3d&amp;post=6729</link><pubDate>Tue, 30 May 2006 08:57:09 GMT</pubDate><description>&lt;P&gt;I have come across two instances in my work where a read during a transaction to update is required.&amp;nbsp; The ORMapper doesn't do this and it would be useful to allow this occur.&lt;/P&gt;</description></item><item><title>Serializable ObjectSpace</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2166&amp;key=%2b%2foYc9GK8uHaNKF37o2zJg%3d%3d&amp;post=6721</link><pubDate>Sun, 28 May 2006 00:26:22 GMT</pubDate><description>Hi Doug:&lt;br&gt;&lt;br&gt;I'm actually suggesting still another option, which doesn't require either an ObjectSpace to be maintained across calls nor a new fetch of an existing object.&amp;nbsp; The trick is to realize that the StartTracking method allows you to call specify that an object is an existing object that has been already been updated, thus allowing PersistChanges to work.&amp;nbsp; This basically means that you can work "disconnected" from an ObjectSpace and re-establish a "connection" whenever you need to persist your work -- just call StartTracking.&amp;nbsp; Note there is a difference between InitialState Unchanged and Updated -- specifying Unchanged without making any changes after that call will result in no persistence.&amp;nbsp; Anyhow, you can always call StartTracking, specifying Updated, and know that your changes will be saved when you call PersistChanges, without the overhead of the same ObjectSpace or another fetch.&lt;br&gt;&lt;br&gt;Thanks, Paul Wilson</description></item><item><title>Serializable ObjectSpace</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2166&amp;key=%2b%2foYc9GK8uHaNKF37o2zJg%3d%3d&amp;post=6718</link><pubDate>Sun, 28 May 2006 00:15:03 GMT</pubDate><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Paul,&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Thanks for responding.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;We are centralizing database and other resource activity into remoting servers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Thick client, and public facing web servers use remoting servers for, say, all database activity.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;To restate the probably obvious:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A typical interaction is: Client requests widget from remoting server -&amp;gt; Remoting server fetches widget using WORM and serializes back to client -&amp;gt; Client allows user to play with widget and save changes back to server&amp;nbsp;-&amp;gt; Server uses WORM to save changes with the context developed during the fetch.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I am shooting for a design where I can support a simple RemotingServer.FetchWidget() and RemotingServer.SaveWiget(wiget).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I’m guessing you are recommending that the remoting server’s Saves(wiget) re-fetches the widget using a new ObjectSpace and overlays the changes that were passed in. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Did I guess right?.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If so, I’d argue that the overlay functionality is an unappealing alternative to letting WORM do its work as if the same ObjectSpace created during the fetch was still available when Save was called.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I do not believe that the Fetch and Save are any less loosely coupled if the Save requires (or at least can take advantage of) the context that was developed during the fetch.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Our current design is to keep the ObjectSpace on the System.Runtime.Remoting.Messaging.CallContext class.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This relieves the application from having to pass it around.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I certainly don’t want to do anything with obvious problems.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I would love to hear your feedback if I am doing anything too crazy.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I’m a bit new to ORM, but this design seemed like a natural way to get the full benefits of it in a remoted environment.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Thanks&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;- Doug&lt;/P&gt;</description></item><item><title>Assume insert if not tracked</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2161&amp;key=Y18kziysA5mSDDaOAvDqWQ%3d%3d&amp;post=6717</link><pubDate>Fri, 26 May 2006 18:14:44 GMT</pubDate><description>I'm looking at a few cases similar to this, but I haven't done enough yet to promise this specific case.&lt;br&gt;&lt;br&gt;Thanks, Paul Wilson&lt;br&gt;</description></item><item><title>Assume insert if not tracked</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2161&amp;key=Y18kziysA5mSDDaOAvDqWQ%3d%3d&amp;post=6706</link><pubDate>Fri, 26 May 2006 18:12:46 GMT</pubDate><description>&lt;P&gt;Hi Paul,&lt;/P&gt;
&lt;P&gt;I made a change to the Context class to help me avoid having to track wheter StartTracking had been called on each object.&amp;nbsp; Basically, I think it is OK for me to assume that if StartTracking had not been called, then it is an insert.&amp;nbsp; The assumption is made that the same instances hash table is used for selects and inserts.&amp;nbsp; I am working a solution for this in a remoted environment... but that is another story.&lt;/P&gt;
&lt;P&gt;I can continue to make this change in new ORMapper versions...&amp;nbsp; but&amp;nbsp;I thought I'd try&amp;nbsp;to get a 'sanctioned' version of this change into the main code line.&lt;/P&gt;
&lt;P&gt;For what it is worth, I believe NHibernate uses this approach.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;- Doug&lt;/P&gt;
&lt;P&gt;Here is the change:&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Instance&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;this&lt;/FONT&gt;&lt;FONT size=2&gt;[&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;FONT size=2&gt; entityObject] {&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;get&lt;/FONT&gt;&lt;FONT size=2&gt; {&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&amp;nbsp;&amp;nbsp; // Jeff Lanning (jefflanning@gmail.com): Made thread-safe (and improved performance a bit).&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;&amp;nbsp;&amp;nbsp; EntityKey&lt;/FONT&gt;&lt;FONT size=2&gt; entityKey = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;EntityKey&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;this&lt;/FONT&gt;&lt;FONT size=2&gt;, entityObject, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;&amp;nbsp;&amp;nbsp; Instance&lt;/FONT&gt;&lt;FONT size=2&gt; instance = (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Instance&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;this&lt;/FONT&gt;&lt;FONT size=2&gt;.instances[entityKey];&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp; if&lt;/FONT&gt;&lt;FONT size=2&gt; (instance == &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;) {&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;HERE IS THE CHANGE:&amp;nbsp;assume tracking an insert instead of throwing&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/FONT&gt;&lt;FONT size=2&gt;.StartTracking(entityObject, &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;InitialState&lt;/FONT&gt;&lt;FONT size=2&gt;.Inserted);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; entityKey = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;EntityKey&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;this&lt;/FONT&gt;&lt;FONT size=2&gt;, entityObject, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// guid keys get assigned at start tracking&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; instance = (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Instance&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;this&lt;/FONT&gt;&lt;FONT size=2&gt;.instances[entityKey];&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //END OF CHANGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // throw new ORMapperException("ObjectSpace: Entity Object not being Tracked - " + entityKey);&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; instance.EntityObject = entityObject; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// Refresh WeakReference&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp; return&lt;/FONT&gt;&lt;FONT size=2&gt; instance;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;&lt;/FONT&gt;</description></item><item><title>Serializable ObjectSpace</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2166&amp;key=%2b%2foYc9GK8uHaNKF37o2zJg%3d%3d&amp;post=6716</link><pubDate>Fri, 26 May 2006 18:12:17 GMT</pubDate><description>Hi Doug:&lt;br&gt;&lt;br&gt;I don't want to imply that its not doable, but I do think its fair to say that this would not be a typical design of a distributed app.&amp;nbsp; While you can build them many ways technically, most of the time its advisable to stick to loosely coupled message-oriented systems (SOA is the current buzzword).&amp;nbsp; Any thoughts?&amp;nbsp; I suppose you could just argue that I can simply mark them serializable and let the user beware, but I've tried to avoid non-recommended possibilities so far.&amp;nbsp; I also haven't tested what you're wanting, and since I don't currently see a reason to want to test that it puts me in a tough spot.&lt;br&gt;&lt;br&gt;Thanks, Paul Wilson&lt;br&gt;</description></item><item><title>Serializable ObjectSpace</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2166&amp;key=%2b%2foYc9GK8uHaNKF37o2zJg%3d%3d&amp;post=6712</link><pubDate>Fri, 26 May 2006 18:07:12 GMT</pubDate><description>&lt;P&gt;Hi Paul,&lt;/P&gt;
&lt;P&gt;We need to make the ObjectSpace serializable.&amp;nbsp; We want the&amp;nbsp;IsolatedContexts&amp;nbsp;to endure across remoting calls.&amp;nbsp; Yeah, we are taking&amp;nbsp;the performance concerns&amp;nbsp;into account.&amp;nbsp; It would be helpful if these classes were marked as [Serializable] in your main code line.&amp;nbsp; We have loosely tested this.&amp;nbsp; There does not appear to be a need for special serialize code...&amp;nbsp; just the class attribute&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;ORMapper&lt;BR&gt;&lt;/STRONG&gt;CustomProvider.cs&lt;BR&gt;ObjectSpace.cs&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Internals&lt;BR&gt;&lt;/STRONG&gt;Connection.cs&lt;BR&gt;Context.cs&lt;BR&gt;EntityKey.cs&lt;BR&gt;Instance.cs&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Internals.Mappings&lt;BR&gt;&lt;/STRONG&gt;AttributeMap.cs&lt;BR&gt;ChildMap.cs&lt;BR&gt;EntityMap.cs&lt;BR&gt;FiledMap.cs&lt;BR&gt;LookupMap.cs&lt;BR&gt;ManyMap.cs&lt;BR&gt;Mappings.cs&lt;BR&gt;ParentMap.cs&lt;BR&gt;RelationshipMap.cs&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Internals.Providers&lt;BR&gt;&lt;/STRONG&gt;Commands.cs&lt;BR&gt;MSCommands.cs&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;- Doug&lt;/P&gt;</description></item><item><title>Support For Subentities</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2137&amp;key=ktMHwtTgpUXN7bHjoKOBxQ%3d%3d&amp;post=6639</link><pubDate>Fri, 05 May 2006 00:46:56 GMT</pubDate><description>Hi Phil:&lt;br&gt;&lt;br&gt;Its something I might support in the future, and its gradually rising higher on my list as I knock of other things.&amp;nbsp; But its so far not something I view as necessary either -- even the creators of Hibernate warn people that using the other type of "database inheritance" with their mapper can be very inefficient in many cases.&amp;nbsp; Instead, in most cases where you need a more complicated database model, you also need to go to greater pains to model it efficiently and optimize it -- a process that tends to not be very generic, i.e. not one-size-fits-all.&lt;br&gt;&lt;br&gt;Thanks, Paul Wilson&lt;br&gt;</description></item><item><title>Support For Subentities</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2137&amp;key=ktMHwtTgpUXN7bHjoKOBxQ%3d%3d&amp;post=6638</link><pubDate>Fri, 05 May 2006 00:39:53 GMT</pubDate><description>&lt;P&gt;&lt;FONT size=4&gt;Hi,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;I've seen the WIKI FAQ detailing the limitation that subentities must store their properties in the same table as the base class and I've seen a number of posts asking about this feature and workarounds to it (which I'm sure are what prompted the FAQ entry). &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;Can you give an indication as to whether this is something you will never support, something you might support in the future or something that is high on your list of changes to make and might be released shortly?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;Thanks,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;Phil&lt;/FONT&gt;&lt;/P&gt;</description></item><item><title>Resync IList&lt;T&gt; collections request.</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2106&amp;key=FksOJy5G%2bhVXtZedLRyczg%3d%3d&amp;post=6554</link><pubDate>Tue, 25 Apr 2006 19:00:47 GMT</pubDate><description>Hi Knave:&lt;br&gt;&lt;br&gt;Hmmm, I'll look into it and try to have it fixed for the next release, probably appearing in a Subscriber Preview as soon as I can fit it in.&lt;br&gt;&lt;br&gt;Thanks, Paul Wilson&lt;br&gt;</description></item><item><title>Resync IList&lt;T&gt; collections request.</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2106&amp;key=FksOJy5G%2bhVXtZedLRyczg%3d%3d&amp;post=6550</link><pubDate>Tue, 25 Apr 2006 18:59:07 GMT</pubDate><description>Hi Paul,&lt;br&gt;&lt;br&gt;When using the powerful Generics for .NET 2.0, I realized that when attempting to resync a generic collection, it will throw an error.&lt;br&gt;&lt;br&gt;e.g. Manager.Resync( myObj.ListOfChildrens ); // where ListOfChildrens is of type IList&amp;lt;Child&amp;gt;.&lt;br&gt;&lt;br&gt;Some food for thought, which perhaps you can incorporate in the next version? &lt;br&gt;Thanks.&lt;br&gt;&lt;br&gt;Knave.&lt;br&gt;</description></item><item><title>Add Composite Key Support to Generic ObjectSet</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2103&amp;key=CqItoW1hRhrouNTbJk%2fuiQ%3d%3d&amp;post=6543</link><pubDate>Sun, 23 Apr 2006 20:28:02 GMT</pubDate><description>Hey Andy:&lt;br&gt;&lt;br&gt;Hmmm, I don't guess anyone ever noticed the discrepancy before.&amp;nbsp; And yes, I should be able to add that now that I know I need to do so.&amp;nbsp; :)&lt;br&gt;&lt;br&gt;Thanks, Paul Wilson&lt;br&gt;</description></item><item><title>Add Composite Key Support to Generic ObjectSet</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2103&amp;key=CqItoW1hRhrouNTbJk%2fuiQ%3d%3d&amp;post=6542</link><pubDate>Sun, 23 Apr 2006 18:56:15 GMT</pubDate><description>Paul,&lt;br&gt;&lt;br&gt;I noticed that there is support for composite keys in ObjectSet, but not ObjectSet_T?&amp;nbsp; Currently, when I attempt to RemoveByKey I get a null refence exception since it doesn't use the ArrayKeyComparer that was contributed by Peter Goetzl.&amp;nbsp; When I changed the hashtable to use the ArrayKeyComparer everything seemed to work correctly.&amp;nbsp; Any plans to add this to a future version?&lt;br&gt;&lt;br&gt;Andy&lt;br&gt;</description></item><item><title>Reverse Mapping...</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2070&amp;key=JYX9OsZqd15ImI66KQ%2bmFQ%3d%3d&amp;post=6509</link><pubDate>Tue, 18 Apr 2006 15:32:46 GMT</pubDate><description>I'm not sure I agree that's what it means, but if it is that then it won't happen.&amp;nbsp; I'm a firm believer that an O/R Mapper, and for that matter any other runtime library, should not modify a database in any way.&amp;nbsp; I do understand that there are scenarios where you would want that functionality, but I think it should be a separate tool, or your own code, that does that.&amp;nbsp; Why?&amp;nbsp; Because the vast majority of users would steer clear, and rightfully so, of any tool that has the potential to alter their database on the fly -- even if its just a possibility.&lt;br&gt;&lt;br&gt;Thanks, Paul Wilson&lt;br&gt;</description></item><item><title>Reverse Mapping...</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2070&amp;key=JYX9OsZqd15ImI66KQ%2bmFQ%3d%3d&amp;post=6506</link><pubDate>Tue, 18 Apr 2006 15:27:00 GMT</pubDate><description>&lt;P&gt;I think he means to create the database tables&amp;nbsp;from his classes in any supported database.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Timur Zanagar&lt;/P&gt;</description></item><item><title>ObjectSpan / LoadSpan</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=1864&amp;key=UWr781a5Ub3Ya4h3jQIlFg%3d%3d&amp;post=6466</link><pubDate>Tue, 11 Apr 2006 02:16:56 GMT</pubDate><description>See &lt;a href="../News/Default.aspx?part=72&amp;amp;action=more&amp;amp;id=28&amp;amp;key=bo5%2bG3v5j6nHCtAUxHorwQ%3d%3d"&gt;latest news&lt;/a&gt; on the Subscriber Preview v4.2.2.1 for a few of these minor requests.</description></item><item><title>Sorting feature</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=1789&amp;key=3IT7EgFll%2bsuDkccBvdrmw%3d%3d&amp;post=6465</link><pubDate>Tue, 11 Apr 2006 02:15:14 GMT</pubDate><description>See &lt;a href="/News/Default.aspx?part=72&amp;amp;action=more&amp;amp;id=28&amp;amp;key=bo5%2bG3v5j6nHCtAUxHorwQ%3d%3d"&gt;latest news&lt;/a&gt; on the Subscriber Preview v4.2.2.1.&lt;br&gt;</description></item><item><title>Reverse Mapping...</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2070&amp;key=JYX9OsZqd15ImI66KQ%2bmFQ%3d%3d&amp;post=6435</link><pubDate>Thu, 06 Apr 2006 22:22:03 GMT</pubDate><description>What would that be?&amp;nbsp; A way to get a Class.Alias name from a Table.Field name?&lt;br&gt;&lt;br&gt;Thanks, Paul Wilson&lt;br&gt;</description></item><item><title>Reverse Mapping...</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2070&amp;key=JYX9OsZqd15ImI66KQ%2bmFQ%3d%3d&amp;post=6432</link><pubDate>Thu, 06 Apr 2006 22:20:26 GMT</pubDate><description>&lt;P&gt;Hi Paul,&lt;/P&gt;
&lt;P&gt;I would like to have a Reverse Mapping in WORM. Is this a possible wish?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you very much in advance.&lt;/P&gt;</description></item><item><title>Lazy load controlled</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2057&amp;key=rK%2fFo9tcQDRxL1TO7UB2Aw%3d%3d&amp;post=6399</link><pubDate>Fri, 31 Mar 2006 22:20:57 GMT</pubDate><description>&lt;P&gt;I understand you, but here's a good pattern that solve this problems :&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;class&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Person&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;BR&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Guid&lt;/FONT&gt;&lt;FONT size=2&gt; m_PersonId;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt; m_FirstName;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;SaleOrderCollection&lt;/FONT&gt;&lt;FONT size=2&gt; m_SaleOrder;&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;&lt;FONT color=#0000ff&gt;public&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;&amp;nbsp;&lt;/FONT&gt;Guid&lt;/FONT&gt;&lt;FONT size=2&gt; PersonId {&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;get&lt;/FONT&gt;&lt;FONT size=2&gt;{ &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; m_PersonId;} &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;set&lt;/FONT&gt;&lt;FONT size=2&gt; {m_PersonId=&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;value&lt;/FONT&gt;&lt;FONT size=2&gt;;}}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;&lt;FONT color=#0000ff&gt;public&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt; FirstName { &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;get&lt;/FONT&gt;&lt;FONT size=2&gt; { &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; m_FirstName; } &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;set&lt;/FONT&gt;&lt;FONT size=2&gt; { m_FirstName = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;value&lt;/FONT&gt;&lt;FONT size=2&gt;; } }&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;&lt;FONT color=#0000ff&gt;public&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;&amp;nbsp;&lt;/FONT&gt;SaleOrderCollection&lt;/FONT&gt;&lt;FONT size=2&gt; SaleOrder { &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;get&lt;/FONT&gt;&lt;FONT size=2&gt; { &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; m_SaleOrder; } &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;set&lt;/FONT&gt;&lt;FONT size=2&gt; { m_SaleOrder = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;value&lt;/FONT&gt;&lt;FONT size=2&gt;; } }&lt;BR&gt;&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;interface&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;IPersonFactory&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;BR&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; Load(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Person&lt;/FONT&gt;&lt;FONT size=2&gt; objInfo, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; nDepth); &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; Insert(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Person&lt;/FONT&gt;&lt;FONT size=2&gt; objInfo, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; nDepth);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; Update(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Person&lt;/FONT&gt;&lt;FONT size=2&gt; objInfo, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; nDepth);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; Delete(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Person&lt;/FONT&gt;&lt;FONT size=2&gt; objInfo, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; nDepth);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; Save(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;PersonCollection&lt;/FONT&gt;&lt;FONT size=2&gt; objList, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; nDepth);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; DeleteColl(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;PersonCollection&lt;/FONT&gt;&lt;FONT size=2&gt; objList, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; nDepth);&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;I will try to create a 'Template' to generate the correct implementation of this.&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;</description></item><item><title>Lazy load controlled</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2057&amp;key=rK%2fFo9tcQDRxL1TO7UB2Aw%3d%3d&amp;post=6398</link><pubDate>Fri, 31 Mar 2006 12:22:44 GMT</pubDate><description>Hi Alexnaldo:&lt;br&gt;&lt;br&gt;That of course isn't a problem with the default lazyLoad="true" case, but you are correct that when you disable lazy-loading then you lose that flexibility.&amp;nbsp; This is one reason that distributed apps are much harder to design correctly -- its not necessarily a coding challenge as much as it is a design challenge.&amp;nbsp; You either need to decide what you want and go with it at all times, or you need to create two different types that differ only in their relationships (not typically recommended, but listed here since it is an alternative).&amp;nbsp; My advice is that if you almost always want the relationships then you just accept that you will always get them, or you go without them and get them with your own code only when needed.&amp;nbsp; Which is best?&amp;nbsp; That very much depends on your application and its usage scenarios -- thus the design challenge of distributed apps.&lt;br&gt;&lt;br&gt;Thanks, Paul Wilson&lt;br&gt;</description></item><item><title>Lazy load controlled</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2057&amp;key=rK%2fFo9tcQDRxL1TO7UB2Aw%3d%3d&amp;post=6393</link><pubDate>Fri, 31 Mar 2006 12:16:33 GMT</pubDate><description>&lt;P&gt;Hi Paul,&lt;/P&gt;
&lt;P&gt;I have one&amp;nbsp;relation Order-&amp;gt;OrderDetails with lazyLoad=false&lt;/P&gt;
&lt;P&gt;If I do : ObjectSpace.Save(..)&lt;FONT size=2&gt; I need to inform the "persistDepth",&amp;nbsp; but isn't possible&amp;nbsp;to do it&amp;nbsp;:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;ObjectSpace.GetObject(typeof(Order),&lt;FONT color=#008080 size=2&gt;PersistDepth.SingleObject)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#008080 size=2&gt;&lt;FONT color=#000000&gt;Why I need it ?&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#008080 size=2&gt;&lt;FONT color=#000000&gt;Sometime I need all object graph, sometime not. It's very good for distributed application, because I need to controller the 'LazyLoad' for performance issue.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#008080 size=2&gt;&lt;FONT color=#000000&gt;Thanks,&lt;BR&gt;Alexnaldo Santos&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;</description></item><item><title>Aggregate Feature?</title><link>http://wilsonormapper.com/Forums/Default.aspx?part=74&amp;action=thread&amp;id=2010&amp;key=4fZHZxGcZd0IzuqGA1agYQ%3d%3d&amp;post=6221</link><pubDate>Thu, 09 Mar 2006 00:37:05 GMT</pubDate><description>&lt;DIV&gt;Aggregate type attribute, something similar to a &amp;lt;lookup /&amp;gt;, see psuedo example below:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;&amp;lt;entity type="Customer" table="Customers" keyMember="id"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;attribute member="firstName" field="fistName" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;attribute member="lastName" field="lastName" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;aggregate member="orderCount" aggregateType="COUNT|SUM|MAX|etc." childFieldToAggregate="order_id" type="Order" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;relation relationship="OneToMany" member="orders" field="customer_id" type="Order" ... /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;BR&gt;&amp;lt;/entity&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;&amp;lt;entity type="Order" table="Orders" keyMember="id"&amp;gt;&lt;BR&gt;...&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;This would be faster than loading the "orders" collection and calling customer.Orders.Count property I would think.&amp;nbsp; Or instead of childFieldToAggregate, maybe use childMemberToAggregate or something?&amp;nbsp; I realize this can be accomplished by using a View, but not all views are updateable.&amp;nbsp; This member of course would be readonly.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR&gt;Well aftering thinking about it more, I realize the data in said member would easily become dirty/outdated.&amp;nbsp; As the OneToMany collection data changed, this aggregate member's data would not without resyncing the entity.&amp;nbsp; :-(&amp;nbsp; &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;But thought I would throw this out there anyway.&amp;nbsp; It was one of those things that hit you in the shower.&lt;/DIV&gt;</description></item></channel></rss>