<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.lhotka.net/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>CSLA .NET discussion</title><link>http://forums.lhotka.net/forums/5.aspx</link><description>General discussion about CSLA .NET</description><dc:language /><generator>CommunityServer 2008.5 SP3 (Build: 36.8414)</generator><item><title>Re: Repository pattern (Demo DpRepos) -  Invalid attempt to call Read when reader is closed</title><link>http://forums.lhotka.net/forums/thread/51858.aspx</link><pubDate>Wed, 15 Feb 2012 21:18:48 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:51858</guid><dc:creator>RockfordLhotka</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/51858.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=51858</wfw:commentRss><description>&lt;p&gt;&amp;gt; You are NOT using the repository pattern if you return an IDataReader.&lt;/p&gt;
&lt;p&gt;That&amp;#39;s not necessarily true. Your provider interface could be based on IDataReader - I do this in the &lt;em&gt;Data Access&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;The thing with building a DAL interface based on IDataReader is that you have to fully understand how data readers and connections work, and live within those constraints.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Repository pattern (Demo DpRepos) -  Invalid attempt to call Read when reader is closed</title><link>http://forums.lhotka.net/forums/thread/51854.aspx</link><pubDate>Wed, 15 Feb 2012 20:35:16 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:51854</guid><dc:creator>sguolla</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/51854.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=51854</wfw:commentRss><description>&lt;p&gt;Hi JonnyBee,&lt;/p&gt;
&lt;p&gt;Thanks for the quick response.&amp;nbsp; We figured out our problem.&amp;nbsp; We were missing some code snippets in our DalManager class.&amp;nbsp; We zipped through things quickly yesterday without fully reading&amp;nbsp;everything in our e-book.&lt;/p&gt;
&lt;p&gt;Stewart G&lt;/p&gt;
&lt;p&gt;Denver, CO&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Repository pattern (Demo DpRepos) -  Invalid attempt to call Read when reader is closed</title><link>http://forums.lhotka.net/forums/thread/51851.aspx</link><pubDate>Wed, 15 Feb 2012 19:18:34 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:51851</guid><dc:creator>JonnyBee</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/51851.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=51851</wfw:commentRss><description>&lt;p&gt;hi,&lt;/p&gt;
&lt;p&gt;Read the part in my previous answer on what using is translated to by the compiler.&lt;/p&gt;
&lt;p&gt;If you need to return an open reader you should not use using on your data access.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Repository pattern (Demo DpRepos) -  Invalid attempt to call Read when reader is closed</title><link>http://forums.lhotka.net/forums/thread/51847.aspx</link><pubDate>Wed, 15 Feb 2012 17:44:04 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:51847</guid><dc:creator>sguolla</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/51847.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=51847</wfw:commentRss><description>&lt;p&gt;We&amp;#39;re running into the exact same problem.&amp;nbsp; What exactly was the solution?&amp;nbsp; We have this code in our DAL:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;
&lt;p&gt;using&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; (&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;var&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; ctx = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;ConnectionManager&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;SqlConnection&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&amp;gt;.GetManager(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#a31515;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#a31515;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#a31515;font-size:x-small;"&gt;&amp;quot;LocalDb&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#008000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#008000;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#008000;font-size:x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Consolas" size="2"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;var&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; cmd = ctx.Connection.CreateCommand();&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;
&lt;p&gt;cmd.CommandType = &lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Consolas" size="2"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;CommandType&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;.StoredProcedure;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;
&lt;p&gt;cmd.CommandText = &lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Consolas" size="2"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas;color:#a31515;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#a31515;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#a31515;font-size:x-small;"&gt;&amp;quot;up_HarbingerPatientListOf&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;
&lt;p&gt;cmd.Parameters.AddWithValue(&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Consolas" size="2"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas;color:#a31515;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#a31515;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#a31515;font-size:x-small;"&gt;&amp;quot;@FacilityId&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;, facilityId);&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Consolas" size="2"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; cmd.ExecuteReader();}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;Then we fail when we try to read from IDataReader (e.g. &lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;while&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; (data.Read()) {} )&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Repository pattern (Demo DpRepos) -  Invalid attempt to call Read when reader is closed</title><link>http://forums.lhotka.net/forums/thread/51436.aspx</link><pubDate>Tue, 17 Jan 2012 14:45:32 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:51436</guid><dc:creator>cconte</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/51436.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=51436</wfw:commentRss><description>&lt;p&gt;Hi JonnyBee,&lt;/p&gt;
&lt;p&gt;My mistake, I&amp;#39;m using the EncapsulatedInvoke technique (DP_XYZ invoking DAL).&lt;/p&gt;
&lt;p&gt;Actually, I have just&amp;nbsp;found what i&amp;#39;m doing&amp;nbsp;wrong , the DalManager was not well implement cause the Database connection was not persistent. &lt;/p&gt;
&lt;p&gt;And like you said in the previous mail, my data reader was closed&amp;nbsp; before the method returns&lt;/p&gt;
&lt;p&gt;Thx again for your help,&lt;/p&gt;
&lt;p&gt;Cedric&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Repository pattern (Demo DpRepos) -  Invalid attempt to call Read when reader is closed</title><link>http://forums.lhotka.net/forums/thread/51435.aspx</link><pubDate>Tue, 17 Jan 2012 14:08:06 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:51435</guid><dc:creator>JonnyBee</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/51435.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=51435</wfw:commentRss><description>&lt;p&gt;Hi, &lt;/p&gt;
&lt;p&gt;You are NOT using the repository pattern if you return an IDataReader. &lt;/p&gt;
&lt;p&gt;You should return an object with the values retrieved from the database and not an IDataReader.!! &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;using &lt;/b&gt;(var ctx = ConnectionManager&amp;lt;SqlConnection&amp;gt;.GetManager(&amp;quot;LioDB&amp;quot;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (var cm = ctx.Connection.CreateCommand())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cm.CommandType = System.Data.CommandType.Text;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cm.CommandText = &amp;quot;SELECT ProductID, Name FROM Product&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return cm.ExecuteReader();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;Using is translated in compiled code to &lt;/p&gt;
&lt;p&gt;try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- execute statements&lt;br /&gt;finally&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- dispose object &lt;/p&gt;
&lt;p&gt;so when you use using (var conn...... ) the connection will be closed when it leaves the scope. Hence your connection is closed before the method returns.&lt;/p&gt;
&lt;p&gt;Your ProductEditDal should be created and the values (Id, Name) set inside the using block.&lt;br /&gt;Fetch method should return an object of type ProductEditDal.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Repository pattern (Demo DpRepos) -  Invalid attempt to call Read when reader is closed</title><link>http://forums.lhotka.net/forums/thread/51434.aspx</link><pubDate>Tue, 17 Jan 2012 14:00:24 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:51434</guid><dc:creator>cconte</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/51434.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=51434</wfw:commentRss><description>&lt;p&gt;Hi All,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m currently working on de DpREPOS from the CSLA Core video series to learn how manipulate the DataAccess.&lt;/p&gt;
&lt;p&gt;Actually, im focusing&amp;nbsp;on the Repository pattern, using DataPortal_XYZ methods (EncapsulatedInvoke data reader) &lt;/p&gt;
&lt;p&gt;So, I have reproduced a small demo where the structure is almost identical to the structure in the DpRepos example of the 3.8 demos.&lt;/p&gt;
&lt;p&gt;but when i run my Demo I get the following error &amp;quot;Invalid attempt to call Read when reader is closed&amp;quot;&amp;nbsp; when the DataPortal_Fetch try to read the IDataReader provide by the DAL.&lt;/p&gt;
&lt;p&gt;It&amp;#39;s like if the&amp;nbsp; IdataReader&amp;nbsp; return by he DAL cannot keep data cause the connection reader or database is closed ? &lt;/p&gt;
&lt;p&gt;Some of the things I&amp;rsquo;ve tried and checked&lt;br /&gt;- The SQL request is correct and return data&lt;br /&gt;- Added the option &amp;quot;MultipleActiveResultSets=True&amp;quot; to my connection string&lt;/p&gt;
&lt;p&gt;see Below the code :&lt;/p&gt;
&lt;p&gt;namespace DataAccess.MsSQL&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class ProductEditDal : DataAccess.IProductEditDal&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public IDataReader Fetch()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (var ctx = ConnectionManager&amp;lt;SqlConnection&amp;gt;.GetManager(&amp;quot;LioDB&amp;quot;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (var cm = ctx.Connection.CreateCommand())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cm.CommandType = System.Data.CommandType.Text;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cm.CommandText = &amp;quot;SELECT ProductID, Name FROM Product&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return cm.ExecuteReader();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;...&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;namespace Library&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public partial class ProductEdit&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region Data&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void DataPortal_Fetch(SingleCriteria&amp;lt;ProductEdit, int&amp;gt; criteria)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (var dalFactory = DataAccess.DalFactory.GetManager())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var dal = dalFactory.GetProvider&amp;lt;DataAccess.IProductEditDal&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (var dr = new SafeDataReader(dal.Fetch(criteria.Value)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Here i get an Execption =&amp;gt;&amp;nbsp; Invalid attempt to call Read when reader is closed.&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dr.Read();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (BypassPropertyChecks)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProductID = dr.GetInt32(&amp;quot;ProductID&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name = dr.GetString(&amp;quot;Name&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;I appreciate any suggestions anyone can offer.&lt;/p&gt;
&lt;p&gt;Thanks in advance for your help,&lt;/p&gt;
&lt;p&gt;Cedric&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>