<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Implementing the Repository Pattern with LLBLGEN</title>
	<atom:link href="http://www.rohland.co.za/index.php/2010/01/23/implementing-the-repository-pattern-with-llblgen/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rohland.co.za/index.php/2010/01/23/implementing-the-repository-pattern-with-llblgen/</link>
	<description>Pushing buttons...</description>
	<lastBuildDate>Sat, 04 Feb 2012 08:29:11 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Rohland</title>
		<link>http://www.rohland.co.za/index.php/2010/01/23/implementing-the-repository-pattern-with-llblgen/comment-page-1/#comment-5910</link>
		<dc:creator>Rohland</dc:creator>
		<pubDate>Sun, 06 Mar 2011 12:10:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.rohland.co.za/?p=134#comment-5910</guid>
		<description>Yeah, that was the reason. The primary key is settable for scenarios where you want to run an update without fetching the entity beforehand. 

Hopefully I&#039;ll get round to posting an article on the actual repositories soon.</description>
		<content:encoded><![CDATA[<p>Yeah, that was the reason. The primary key is settable for scenarios where you want to run an update without fetching the entity beforehand. </p>
<p>Hopefully I&#8217;ll get round to posting an article on the actual repositories soon.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sam</title>
		<link>http://www.rohland.co.za/index.php/2010/01/23/implementing-the-repository-pattern-with-llblgen/comment-page-1/#comment-5868</link>
		<dc:creator>Sam</dc:creator>
		<pubDate>Sun, 27 Feb 2011 19:38:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.rohland.co.za/?p=134#comment-5868</guid>
		<description>Hi Rohland,

Why did you decide to check for IsReadOnly as well as IsPrimaryKey? What difference does it make to the getter? Was it so that the primary key would be settable like Mike mentioned?

Also, I&#039;d like to second that I&#039;d be interested in knowing how you implemented the base repository class. I&#039;m having difficulty finding resources the define the repository pattern outside of MVC, so I&#039;d be very interested to see how someone else has tackled it.

Thanks again for some awesome work,
Sam.</description>
		<content:encoded><![CDATA[<p>Hi Rohland,</p>
<p>Why did you decide to check for IsReadOnly as well as IsPrimaryKey? What difference does it make to the getter? Was it so that the primary key would be settable like Mike mentioned?</p>
<p>Also, I&#8217;d like to second that I&#8217;d be interested in knowing how you implemented the base repository class. I&#8217;m having difficulty finding resources the define the repository pattern outside of MVC, so I&#8217;d be very interested to see how someone else has tackled it.</p>
<p>Thanks again for some awesome work,<br />
Sam.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James</title>
		<link>http://www.rohland.co.za/index.php/2010/01/23/implementing-the-repository-pattern-with-llblgen/comment-page-1/#comment-5663</link>
		<dc:creator>James</dc:creator>
		<pubDate>Wed, 02 Feb 2011 15:22:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rohland.co.za/?p=134#comment-5663</guid>
		<description>Any chance you could include a couple blurbs on the repository implementation you are using to wrap all of this.

And more specifically, do you have a specification or query pattern implementation in your repositories (i.e.: GetBySpec(ISpecification spec) ...). Something like that.

That has traditionally been the bigger challenge I&#039;ve seen with using interfaces in your entity model.

I suppose that since you are bringing in the LLBLGen dll into your BL with EntityList, maybe you could wrap the specification pattern around some of the llbl functionality.

Without being able to completely remove LLBL from the BL (kind of ironic, given the name), I currently continue to opt to use the adapter entity classes as-is, same with EF STEs if I&#039;m using Entity Framework. So, I get married to the ORM in a way in a project, but it provides the flexibility in the querying abstraction.

Would love to hear your views on this.</description>
		<content:encoded><![CDATA[<p>Any chance you could include a couple blurbs on the repository implementation you are using to wrap all of this.</p>
<p>And more specifically, do you have a specification or query pattern implementation in your repositories (i.e.: GetBySpec(ISpecification spec) &#8230;). Something like that.</p>
<p>That has traditionally been the bigger challenge I&#8217;ve seen with using interfaces in your entity model.</p>
<p>I suppose that since you are bringing in the LLBLGen dll into your BL with EntityList, maybe you could wrap the specification pattern around some of the llbl functionality.</p>
<p>Without being able to completely remove LLBL from the BL (kind of ironic, given the name), I currently continue to opt to use the adapter entity classes as-is, same with EF STEs if I&#8217;m using Entity Framework. So, I get married to the ORM in a way in a project, but it provides the flexibility in the querying abstraction.</p>
<p>Would love to hear your views on this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rohland</title>
		<link>http://www.rohland.co.za/index.php/2010/01/23/implementing-the-repository-pattern-with-llblgen/comment-page-1/#comment-5640</link>
		<dc:creator>Rohland</dc:creator>
		<pubDate>Fri, 28 Jan 2011 06:58:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.rohland.co.za/?p=134#comment-5640</guid>
		<description>Hi,

The templates attached to this post mitigate that issue since the entities all implement their own defined interfaces. This means the UI is not exposed to ANY LLBLGEN functionality.

For example, instead of the repository returning an OrderEntity (LLBLGEN entity) it returns an IOrderEntity which is implemented by the LLBLGEN entity but doesn&#039;t expose all the LLBLGEN properties and methods.

Hope this explanation helps.</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>The templates attached to this post mitigate that issue since the entities all implement their own defined interfaces. This means the UI is not exposed to ANY LLBLGEN functionality.</p>
<p>For example, instead of the repository returning an OrderEntity (LLBLGEN entity) it returns an IOrderEntity which is implemented by the LLBLGEN entity but doesn&#8217;t expose all the LLBLGEN properties and methods.</p>
<p>Hope this explanation helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: saravana</title>
		<link>http://www.rohland.co.za/index.php/2010/01/23/implementing-the-repository-pattern-with-llblgen/comment-page-1/#comment-5615</link>
		<dc:creator>saravana</dc:creator>
		<pubDate>Mon, 24 Jan 2011 17:39:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.rohland.co.za/?p=134#comment-5615</guid>
		<description>Hi Rohland,

We are going to develop a 3-tier application using WPF,Oracle 11g,LLBLGen 3.0. Do you have a idea for generating Business objects for LLBLGen entties? My client is suggesting to use DAL entities in BL also and return it to UI. But I didn&#039;t like that as it will strongly couple the DAL to UI. Do you have a sample implementation of BL based on LLBLGen entities?</description>
		<content:encoded><![CDATA[<p>Hi Rohland,</p>
<p>We are going to develop a 3-tier application using WPF,Oracle 11g,LLBLGen 3.0. Do you have a idea for generating Business objects for LLBLGen entties? My client is suggesting to use DAL entities in BL also and return it to UI. But I didn&#8217;t like that as it will strongly couple the DAL to UI. Do you have a sample implementation of BL based on LLBLGen entities?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike</title>
		<link>http://www.rohland.co.za/index.php/2010/01/23/implementing-the-repository-pattern-with-llblgen/comment-page-1/#comment-5586</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Sat, 22 Jan 2011 16:38:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.rohland.co.za/?p=134#comment-5586</guid>
		<description>Thanks Rohland. I did manage to figure out the generic base repository problem I had after finding a way to set the primary key.

An entry on your repositories would be much appreciated!

Mike</description>
		<content:encoded><![CDATA[<p>Thanks Rohland. I did manage to figure out the generic base repository problem I had after finding a way to set the primary key.</p>
<p>An entry on your repositories would be much appreciated!</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rohland</title>
		<link>http://www.rohland.co.za/index.php/2010/01/23/implementing-the-repository-pattern-with-llblgen/comment-page-1/#comment-5585</link>
		<dc:creator>Rohland</dc:creator>
		<pubDate>Sat, 22 Jan 2011 13:43:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.rohland.co.za/?p=134#comment-5585</guid>
		<description>Hi Mike,

My specific repositories are sub-classes of a base repository which generically handles the boring stuff (GetById, Save - update/insert, Delete). 

I&#039;ll post a blog entry soon on my implementation of the base repository class.

Regards,
Rohland</description>
		<content:encoded><![CDATA[<p>Hi Mike,</p>
<p>My specific repositories are sub-classes of a base repository which generically handles the boring stuff (GetById, Save &#8211; update/insert, Delete). </p>
<p>I&#8217;ll post a blog entry soon on my implementation of the base repository class.</p>
<p>Regards,<br />
Rohland</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike</title>
		<link>http://www.rohland.co.za/index.php/2010/01/23/implementing-the-repository-pattern-with-llblgen/comment-page-1/#comment-5576</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Fri, 21 Jan 2011 20:53:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.rohland.co.za/?p=134#comment-5576</guid>
		<description>Hi Rohland,

Thanks for sharing this solution - I&#039;m sure a lot of work went into this!

I&#039;m currently looking at LLBL for my next project and was wondering if you could share some thoughts on how you implemented the repositories themselves? I&#039;ve tried (without success) to create a basic generic repository but I just can&#039;t get it to work with LLBL. Did you create a specific repository for each of your entities (roots)?

Thanks again,

Mike</description>
		<content:encoded><![CDATA[<p>Hi Rohland,</p>
<p>Thanks for sharing this solution &#8211; I&#8217;m sure a lot of work went into this!</p>
<p>I&#8217;m currently looking at LLBL for my next project and was wondering if you could share some thoughts on how you implemented the repositories themselves? I&#8217;ve tried (without success) to create a basic generic repository but I just can&#8217;t get it to work with LLBL. Did you create a specific repository for each of your entities (roots)?</p>
<p>Thanks again,</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rohland</title>
		<link>http://www.rohland.co.za/index.php/2010/01/23/implementing-the-repository-pattern-with-llblgen/comment-page-1/#comment-5525</link>
		<dc:creator>Rohland</dc:creator>
		<pubDate>Mon, 17 Jan 2011 06:12:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.rohland.co.za/?p=134#comment-5525</guid>
		<description>Cool. The latest template I am using deals with the &#039;readonly&#039; issue. Update your interface template for property fields as follows:

&lt;[If IsNullable]&gt;&lt;[If IsValueType]&gt;&lt;[TypeOfField]&gt;?&lt;[Else]&gt;&lt;[TypeOfField]&gt;&lt;[EndIf]&gt;&lt;[Else]&gt;&lt;[TypeOfField]&gt;&lt;[EndIf]&gt; &lt;[EntityFieldName]&gt; {get;&lt;[If IsReadOnly ]&gt;&lt;[If IsPrimaryKey ]&gt;set;&lt;[EndIf]&gt;&lt;[Else]&gt;set;&lt;[EndIf]&gt;}&lt;[NextForeach]&gt;</description>
		<content:encoded><![CDATA[<p>Cool. The latest template I am using deals with the &#8216;readonly&#8217; issue. Update your interface template for property fields as follows:</p>
<p>< [If IsNullable]>< [If IsValueType]>< [TypeOfField]>?< [Else]>< [TypeOfField]>< [EndIf]>< [Else]>< [TypeOfField]>< [EndIf]> < [EntityFieldName]> {get;< [If IsReadOnly ]>< [If IsPrimaryKey ]>set;< [EndIf]>< [Else]>set;< [EndIf]>}< [NextForeach]></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sam</title>
		<link>http://www.rohland.co.za/index.php/2010/01/23/implementing-the-repository-pattern-with-llblgen/comment-page-1/#comment-5522</link>
		<dc:creator>Sam</dc:creator>
		<pubDate>Sun, 16 Jan 2011 16:57:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.rohland.co.za/?p=134#comment-5522</guid>
		<description>I think I know what happened. Instead of just downloading and copying over your changed files, I had to merge them in with our own and must have corrupted them somehow the first time. I tried it again and now it works great. Sorry about the confusion.

The only thing I&#039;m trying to figure out now is that one of our databases has a table with a read only field. The resulting entity has no setter, but the template generates one and then the compiler throws an error saying that we&#039;ve missed the implementation. I&#039;m going to tweak it and see what I can come up with. I&#039;ll let you know what I find out if you&#039;re interested. :)

Thanks again for a great template. It&#039;s really opened my eyes as to what&#039;s possible with LLBLGen.</description>
		<content:encoded><![CDATA[<p>I think I know what happened. Instead of just downloading and copying over your changed files, I had to merge them in with our own and must have corrupted them somehow the first time. I tried it again and now it works great. Sorry about the confusion.</p>
<p>The only thing I&#8217;m trying to figure out now is that one of our databases has a table with a read only field. The resulting entity has no setter, but the template generates one and then the compiler throws an error saying that we&#8217;ve missed the implementation. I&#8217;m going to tweak it and see what I can come up with. I&#8217;ll let you know what I find out if you&#8217;re interested. <img src='http://www.rohland.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Thanks again for a great template. It&#8217;s really opened my eyes as to what&#8217;s possible with LLBLGen.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

