<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Rexiology... : O/R Mapping</title><link>http://msmvps.com/blogs/rexiology/archive/tags/O_2F00_R+Mapping/default.aspx</link><description>Tags: O/R Mapping</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Blog moved to MSDN Blogs site...</title><link>http://msmvps.com/blogs/rexiology/archive/2007/03/19/blog-moved-to-msdn-blogs-site.aspx</link><pubDate>Sun, 18 Mar 2007 18:33:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:691714</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=691714</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2007/03/19/blog-moved-to-msdn-blogs-site.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This post announces the depreciation of Rexiology MSMVP blog (this site). &lt;/P&gt;
&lt;P&gt;for new post updates please update your RSS reader to &lt;A href="http://blogs.msdn.com/rextang"&gt;http://blogs.msdn.com/rextang&lt;/A&gt; ,&lt;/P&gt;
&lt;P&gt;or you can also point to my main personal work blog site at &lt;A href="http://rextang.net/blogs/work/"&gt;http://rextang.net/blogs/work/&lt;/A&gt; .&lt;/P&gt;
&lt;P&gt;Thanks for reading...&lt;/P&gt;
&lt;P&gt;Rex&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=691714" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Useful+Tools/default.aspx">Useful Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Blog+Framework+_2F00_+Tools/default.aspx">Blog Framework / Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Business/default.aspx">Business</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Going+Mobile/default.aspx">Going Mobile</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/I.T.+News/default.aspx">I.T. News</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Information+Technology/default.aspx">Information Technology</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/O_2F00_R+Mapping/default.aspx">O/R Mapping</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Readings/default.aspx">Readings</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Java/default.aspx">Java</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Linux/default.aspx">Linux</category></item><item><title>LINQ / DLINQ resource...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/10/31/LINQ-_2F00_-DLINQ-resource_2E00__2E00__2E00_.aspx</link><pubDate>Tue, 31 Oct 2006 08:11:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:230660</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=230660</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/10/31/LINQ-_2F00_-DLINQ-resource_2E00__2E00__2E00_.aspx#comments</comments><description>&lt;p&gt;crosspost from &lt;a href="http://rextang.net/blogs/work/"&gt;http://rextang.net/blogs/work/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Just read from &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/09/01/Understanding-LINQ-to-SQL-Query-Translations.aspx"&gt;ScottGu&amp;#39;s blog post&lt;/a&gt; that included useful links to &lt;a href="http://msdn.microsoft.com/data/ref/linq/"&gt;LINQ / DLINQ&lt;/a&gt; .&lt;/p&gt;&lt;p&gt;just leave a record here and will post more after I read them.&lt;/p&gt;&lt;p&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/linq"&gt;&lt;font color="#4444ff"&gt;linq&lt;/font&gt;&lt;/a&gt;&amp;nbsp;, &lt;a href="http://www.technorati.com/tag/dlinq"&gt;&lt;font color="#4444ff"&gt;dlinq&lt;/font&gt;&lt;/a&gt;&amp;nbsp;, &lt;a href="http://www.technorati.com/tag/orm"&gt;&lt;font color="#4444ff"&gt;orm&lt;/font&gt;&lt;/a&gt; , &lt;a href="http://www.technorati.com/tag/programming"&gt;&lt;font color="#4444ff"&gt;programming&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=230660" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/O_2F00_R+Mapping/default.aspx">O/R Mapping</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Readings/default.aspx">Readings</category></item><item><title>NHibernate 1.0.2 released...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/02/16/83870.aspx</link><pubDate>Thu, 16 Feb 2006 10:14:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:83870</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=83870</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/02/16/83870.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rex.la/blogs/work/"&gt;&lt;FONT color=#4444ff&gt;http://rex.la/blogs/work/&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.nhibernate.org/"&gt;NHibernate&lt;/A&gt;&amp;nbsp;got its 1.0.2 release. &lt;A href="http://sourceforge.net/project/shownotes.php?release_id=385522&amp;amp;group_id=73818"&gt;Release Note&lt;/A&gt; as follows:&lt;/P&gt;
&lt;P&gt;Build 1.0.2.0&lt;BR&gt;========================&lt;/P&gt;
&lt;P&gt;Bugs Fixed:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-409] - Sybase - Polymorphics Queries - wrong SQL generation about aliases/quotes&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-418] - Custom persister cannot be instanciated.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-464] - DateTime does not work in composite-element mapping&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-470] - Disconnect and Close should not close user-supplied connections&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-471] - Misspelled property in ICriteria throws NullReferenceException&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-476] - GetSetHelperFactory doesn't work with external dependencies&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-477] - IncrementGenerator reads Int64 even if Int32 or Int16 is used.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-479] - One-To-One SaveAndUpdateCopy - Reference Identifier Bug&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-480] - Should use invariant culture with ToLower and other string calls&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-496] - Reflection optimizer should throw a more informative exception when a property is mapped using a wrong type&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-505] - Reflection optimizer does not work with structures&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-508] - changes to idbag collection not persisted correctly&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-509] - ILMerge is not packaged in the distribution&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-512] - Custom properties accessors do not work&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-523] - SaveOrUpdateCopy throws PersistentObjectException&lt;/P&gt;
&lt;P&gt;New Features:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-513] - FOR UPDATE NOWAIT in Postgresql 8.1&lt;/P&gt;
&lt;P&gt;Improvements:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-483] - Improve type resolution to handle dynamic assemblies&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-488] - Change log level for GetSetHelper messages to DEBUG so that users are not confused&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-489] - Remove logging from ADOException constructor&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-491] - SQLite dialect should use DATETIME type for date/time columns&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-493] - Correction in the NHibernate.Type.CharType.cs&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-497] - Add more Hibernate-compatible type names&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-506] - Make Environment.UseReflectionOptimizer property writable&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-516] - Log SQL parameter values&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-521] - Locking an unitialized entity causes its initialization&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * [NH-525] - Upgrade to latest DynamicProxy&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/hibernate"&gt;hibernate&lt;/A&gt;&amp;nbsp;, &lt;A href="http://www.technorati.com/tag/nhibernate"&gt;nhibernate&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/orm"&gt;orm&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/database"&gt;database&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=83870" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Useful+Tools/default.aspx">Useful Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/O_2F00_R+Mapping/default.aspx">O/R Mapping</category></item><item><title>.netTiers templates for CodeSmith...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/02/15/83693.aspx</link><pubDate>Wed, 15 Feb 2006 06:03:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:83693</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=83693</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/02/15/83693.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rex.la/blogs/work/"&gt;http://rex.la/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;[via &lt;A href="http://weblogs.asp.net/rhoward/archive/2006/02/13/438156.aspx"&gt;Rob Howard&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;Nice post from Rob Howard on&amp;nbsp;&lt;A href="http://community.codesmithtools.com/blogs/tutorials/archive/2006/02/13/nettiers.aspx"&gt;introduction&lt;/A&gt; of &lt;A href="http://cstemplates.sourceforge.net/"&gt;.netTiers templates&lt;/A&gt; for &lt;A href="http://www.codesmithtools.com/"&gt;CodeSmith&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;.netTiers templates are the templates for generation of Data Access Layer (DAL) that follows recommandations of &lt;A href="http://msdn.microsoft.com/practices/"&gt;Microsoft Patterns &amp;amp; Practices&lt;/A&gt; data access techniques, including the using of its &lt;A href="http://msdn.microsoft.com/library/?url=/library/en-us/dnpag2/html/EntLib2.asp"&gt;Enterprise Libraries&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;There are majorly 2 approaches of doing DAL for using in application design. one is to use Code Generation tools such as general purpose tools like CodeSmith or to use specialized DAL generation tool like &lt;A href="http://rex.la/blogs/past/articles/618.aspx"&gt;LLBLGen Pro&lt;/A&gt;. the other way will be using Object Relation Mapping (O/R Mapping)&amp;nbsp;frameworks like &lt;A href="http://rex.la/blogs/past/archive/2005/05/12/753.aspx"&gt;NHibernate&lt;/A&gt;. Code Generation is fast since it's hard coded data access code and strongly typed. O/R Mapping frameworks&amp;nbsp;majorly using Run-Time type mapping thus it's flexible and dynamic, but the performance won't be as good as code generated DAL sinces there will be one more tier to deal with Object Class and Relational Data mapping.&lt;/P&gt;
&lt;P&gt;It should depends on solution design requirements to use either tools, but to all of them, it just showed that with good tools and frameworks, coding or developing desired software won't fall into boring works and will be fun and like art works!&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/codesmith"&gt;codesmith&lt;/A&gt;&amp;nbsp;, &lt;A href="http://www.technorati.com/tag/DAL"&gt;DAL&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/orm"&gt;orm&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/database"&gt;database&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/pattern"&gt;pattern&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=83693" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Useful+Tools/default.aspx">Useful Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/O_2F00_R+Mapping/default.aspx">O/R Mapping</category></item><item><title>Escape single quotation mark in sql query...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/01/21/81563.aspx</link><pubDate>Sat, 21 Jan 2006 10:57:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:81563</guid><dc:creator>Rex Tang</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=81563</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/01/21/81563.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rex.la/blogs/work/"&gt;http://rex.la/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;just a reminder of forming a sql query. &lt;/P&gt;
&lt;P&gt;for concating strings in different databases, refer to &lt;A href="http://rex.la/blogs/work/archive/2005/12/21/3270.aspx"&gt;my post here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;for concatenation, MS SQL uses " + " operator , Oracle uses " || " operator (as well as MySql uses function CONCAT()&amp;nbsp;)&amp;nbsp;. so if one is designing a Data Repository using &lt;A href="http://www.martinfowler.com/eaaCatalog/repository.html"&gt;Repository Pattern&lt;/A&gt;, one may need to process this in repository level, which like providing a function for other code to concate strings in forming a query.&lt;/P&gt;
&lt;P&gt;fortunately, for escaping single quotation mark in a query , it's the same as in MsSql and Oracle , they both used 2 single quotation marks to escape single quotation mark in a single-quotation-mark quoted string. (eg: for a string like o'connell to put in a query, it's 'o''connell' , " ' ' " is escaped and represents " ' ").&lt;/P&gt;
&lt;P&gt;by the way, as NHibernate is just transforming object propertires in to real database field names, those rules above also apply to HQL query. also true if one is using escape chars in a "like" search (eg: select .. from class1 cls&amp;nbsp;where cls.prop1 like '%My\\_Name%' escape '\\' ), the translation to real sql query both for mssql and oracle is tested without problems.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/hibernate"&gt;hibernate&lt;/A&gt;&amp;nbsp;, &lt;A href="http://www.technorati.com/tag/nhibernate"&gt;nhibernate&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/orm"&gt;orm&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/database"&gt;database&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=81563" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/O_2F00_R+Mapping/default.aspx">O/R Mapping</category></item></channel></rss>