tag:blogger.com,1999:blog-7624394686148711990.post3600913087872622888..comments2008-01-09T16:21:19.372+11:00Comments on dave^2 = -1: Messing around with various ORMsDavidhttp://www.blogger.com/profile/05155410712205848106noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-7624394686148711990.post-43883469340517213832008-01-09T16:21:00.000+11:002008-01-09T16:21:00.000+11:00@anonymous,Probably won't be adding an iBatis.Net ...@anonymous,<BR/>Probably won't be adding an iBatis.Net version. My limited understanding of iBatis is that you write the SQL queries for each entity and save them into a mapping file, then iBatis uses those queries to get your entities. I'm more interested in ORM tools that write the SQL for me :)Davidhttp://www.blogger.com/profile/05155410712205848106noreply@blogger.comtag:blogger.com,1999:blog-7624394686148711990.post-72583863870082070162008-01-09T16:11:00.000+11:002008-01-09T16:11:00.000+11:00Any chance you will also try out iBatis.Net?Any chance you will also try out iBatis.Net?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7624394686148711990.post-76145107562503128802008-01-08T20:13:00.000+11:002008-01-08T20:13:00.000+11:00One really important advantage of using LINQ to SQ...One really important advantage of using LINQ to SQL is that by learning the LINQ syntax you’re learning a methodology that can be applied across an ever increasing collection of data repositories. LINQ syntax (such as lambda expressions) can be used to query <A HREF="http://www.codeplex.com/LINQtoSharePoint" REL="nofollow">SharePoint</A>, <A HREF="http://weblogs.asp.net/fmarguerie/archive/2006/06/26/Introducing-Linq-to-Amazon.aspx" REL="nofollow">Amazon</A> and before too long, Oracle.<BR/><BR/>LINQ is far more than just an object persistence technology. To me, this is one of the most important distinctions in terms of which ORM to invest time in learning.Troyhttp://www.blogger.com/profile/06778136934402682504noreply@blogger.comtag:blogger.com,1999:blog-7624394686148711990.post-13152097237330199902008-01-08T17:33:00.000+11:002008-01-08T17:33:00.000+11:00quick turn around on that, and a nice write up. I ...quick turn around on that, and a nice write up. I tend to favor castle activerecord or subsonic depending on the need. that's because nhibernate is a little tricky to get used to.<BR/><BR/>I haven't used entityframework, and only seen the demos of Linq2Sql. I have this reservation about linq2sql because of the potentially really bad things junior coders could do with it.joshhttp://www.blogger.com/profile/13011633285693798889noreply@blogger.comtag:blogger.com,1999:blog-7624394686148711990.post-5415767730415815322008-01-08T16:50:00.000+11:002008-01-08T16:50:00.000+11:00@josh,I've had a look at Castle ActiveRecord as su...@josh,<BR/>I've had a look at Castle ActiveRecord as suggested, and added an <A HREF="http://davesquared.blogspot.com/2008/01/messing-around-with-castle-activerecord.html" REL="nofollow">ActiveRecord</A> version of the sample scenario. If you've got experience with ActiveRecord I'd be grateful if you can point out all the mistakes I've made (particularly the implementation of the many-to-many query). :-)Davidhttp://www.blogger.com/profile/05155410712205848106noreply@blogger.comtag:blogger.com,1999:blog-7624394686148711990.post-49162597926541934632008-01-08T09:00:00.000+11:002008-01-08T09:00:00.000+11:00@josh,Thanks for the comment. I've been meaning to...@josh,<BR/>Thanks for the comment. I've been meaning to check out ActiveRecord (and Monorail) <A HREF="http://davesquared.blogspot.com/2007/02/monorail-and-castle-project.html" REL="nofollow">forever</A>. I'll try have a look and add it to the series.<BR/><BR/>@h32,<BR/>We just have a difference in terminology I think. When I write <I>"LINQ"</I> I mean the language extensions that can query anything. <BR/><BR/>When I write <I>"LINQ to SQL"</I> I'm referring to the LINQ provider for SQL, as well as the sqlmetal tool and related designer in VS2008, which I believe is all SQL Server specific. You're quite right though, you can get LINQ providers for a number of data sources.Davidhttp://www.blogger.com/profile/05155410712205848106noreply@blogger.comtag:blogger.com,1999:blog-7624394686148711990.post-54840905338559675892008-01-08T02:55:00.000+11:002008-01-08T02:55:00.000+11:00"LinqToSql only supports SQL Server "Well this isn..."LinqToSql only supports SQL Server "<BR/>Well this isn't quite true. You can query anything with it. E.g. if you want to use MySQL try DBLinq2007 on google code.h32h32.denoreply@blogger.comtag:blogger.com,1999:blog-7624394686148711990.post-1122721580963000772008-01-08T02:13:00.000+11:002008-01-08T02:13:00.000+11:00You should look at Caslt Project's ActiveRecord. I...You should look at Caslt Project's ActiveRecord. It's easy to get going like SubSonic, and is powered by nhibernate. Almost the best of both worlds.joshhttp://www.blogger.com/profile/13011633285693798889noreply@blogger.comtag:blogger.com,1999:blog-7624394686148711990.post-71281404175538226502008-01-07T16:17:00.000+11:002008-01-07T16:17:00.000+11:00Can I cop out and say Mu? :-) The answer is "it de...Can I cop out and say <A HREF="http://en.wikipedia.org/wiki/Mu_(negative)" REL="nofollow">Mu</A>? :-) The answer is "it depends".<BR/><BR/>Subsonic is great for quickly getting an ActiveRecord-based DAL up-and-running from a database model.<BR/><BR/>NHibernate is more complicated, but allows you to use persistence-ignorant entities and supports advanced queries. It also works well when you want to develop a domain model independent of the database model (say, using TDD).<BR/><BR/>LinqToSql only supports SQL Server (which rules it out for my workplace), and generates entities that are tied to your existing data model. It is also very easy to use.<BR/><BR/>Entity Framework is about more than ORM -- it is about providing unified access to entities in a number of data sources.<BR/><BR/>So in short, the one that works the best is the one that best fits your current requirements. :-)Davidhttp://www.blogger.com/profile/05155410712205848106noreply@blogger.comtag:blogger.com,1999:blog-7624394686148711990.post-88691640566696783832008-01-07T15:38:00.000+11:002008-01-07T15:38:00.000+11:00So in your opinion which one works best?So in your opinion which one works best?letstalkhttp://www.blogger.com/profile/01894298167961424958noreply@blogger.com