<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>artiso Blog - .Net 3.5</title>
    <link>http://www.artiso.com/ProBlog/</link>
    <description>Neues rund um's Thema .Net</description>
    <language>de-de</language>
    <copyright>Thomas</copyright>
    <lastBuildDate>Fri, 13 Feb 2009 11:13:52 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>tschissler@artiso.com</managingEditor>
    <webMaster>tschissler@artiso.com</webMaster>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=c452a3fe-3660-44ca-b998-c392d0c6944b</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,c452a3fe-3660-44ca-b998-c392d0c6944b.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,c452a3fe-3660-44ca-b998-c392d0c6944b.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=c452a3fe-3660-44ca-b998-c392d0c6944b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DaruiszParysbeider.NetDeveloperGroupUlm_ABBC/clip_image001_2.gif">
            <img title="clip_image001" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="108" alt="clip_image001" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DaruiszParysbeider.NetDeveloperGroupUlm_ABBC/clip_image001_thumb.gif" width="783" border="0" />
          </a>
        </p>
        <p>
Beim nächsten Treffen der .Net Developer-Group Ulm dürfen wir diesesmal Dariusz Parys
begrüßen, der zum Thema “Architektur der Datenanbindungsschicht, insbesondere ADO.NET
Data Services und Entity Framework” spricht. Der Abstract verspricht schon mal einen
sehr spannenden Abend:
</p>
        <blockquote>
          <p>
LINQ to SQL, ADO.NET, Entity Framework, Entity Data Model, REST mit ADO.NET Data Services
oder Serialisierung mit WCF ? – neben einem Überblick über die Alternativen und detailliertere
Darstellung des Entity Frameworks wird darauf eingegangen, welche Kriterien beim O/R-Mapping
zur Bewertung zur Verfügung stehen und diskutiert, welcher Nutzen darin liegt, die
Datenanbindung von einer technischen Ebene auf eine logische zu heben.
</p>
        </blockquote>
        <p>
Ích glaube das dürfte ein Themengebiet sein mit dem im Moment jeder Entwickler in
irgendeiner Weise käpft und so dürfte sich Dariusz schon mal auf eine ganze Reihe
von Fragen einstellen (Mir selbst fallen da schon eine ganze Reihe ein). 
</p>
        <p>
Wer also Interesse an dem Thema hat, ist herzlich eingeladen am Dienstag 17.02.2008
um 18:00 zu uns zu kommen.
</p>
        <p>
Weitere Infos unter:
</p>
        <p>
          <a href="http://www.dotnet-ulm.de">http://www.dotnet-ulm.de</a>
        </p>
        <p>
 
</p>
        <p>
          <font face="Times New Roman" size="3"> </font>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c452a3fe-3660-44ca-b998-c392d0c6944b" />
      </body>
      <title>Daruisz Parys bei der .Net Developer-Group Ulm</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,c452a3fe-3660-44ca-b998-c392d0c6944b.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,c452a3fe-3660-44ca-b998-c392d0c6944b.aspx</link>
      <pubDate>Fri, 13 Feb 2009 11:13:52 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DaruiszParysbeider.NetDeveloperGroupUlm_ABBC/clip_image001_2.gif"&gt;&lt;img title="clip_image001" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="108" alt="clip_image001" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DaruiszParysbeider.NetDeveloperGroupUlm_ABBC/clip_image001_thumb.gif" width="783" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Beim nächsten Treffen der .Net Developer-Group Ulm dürfen wir diesesmal Dariusz Parys
begrüßen, der zum Thema “Architektur der Datenanbindungsschicht, insbesondere ADO.NET
Data Services und Entity Framework” spricht. Der Abstract verspricht schon mal einen
sehr spannenden Abend:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
LINQ to SQL, ADO.NET, Entity Framework, Entity Data Model, REST mit ADO.NET Data Services
oder Serialisierung mit WCF ? – neben einem Überblick über die Alternativen und detailliertere
Darstellung des Entity Frameworks wird darauf eingegangen, welche Kriterien beim O/R-Mapping
zur Bewertung zur Verfügung stehen und diskutiert, welcher Nutzen darin liegt, die
Datenanbindung von einer technischen Ebene auf eine logische zu heben.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Ích glaube das dürfte ein Themengebiet sein mit dem im Moment jeder Entwickler in
irgendeiner Weise käpft und so dürfte sich Dariusz schon mal auf eine ganze Reihe
von Fragen einstellen (Mir selbst fallen da schon eine ganze Reihe ein). 
&lt;/p&gt;
&lt;p&gt;
Wer also Interesse an dem Thema hat, ist herzlich eingeladen am Dienstag 17.02.2008
um 18:00 zu uns zu kommen.
&lt;/p&gt;
&lt;p&gt;
Weitere Infos unter:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.dotnet-ulm.de"&gt;http://www.dotnet-ulm.de&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c452a3fe-3660-44ca-b998-c392d0c6944b" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,c452a3fe-3660-44ca-b998-c392d0c6944b.aspx</comments>
      <category>.Net 3.5;ADO.Net;Architektur;Know-How;Vorträge</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=a9034ca2-7aac-4acd-be7a-b63e2c47183b</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,a9034ca2-7aac-4acd-be7a-b63e2c47183b.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,a9034ca2-7aac-4acd-be7a-b63e2c47183b.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=a9034ca2-7aac-4acd-be7a-b63e2c47183b</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Auf dieser Seite sind jede Menge Beispiele zum Thema LINQ thematisch geordnet
aufgelistet. Hier findet man wirklich für viele Einsatzgebiete entsprechende Beispiele.
Wirklich empfehlenswert! 
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/vcsharp/aa336746.aspx">101 LINQ Samples</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=a9034ca2-7aac-4acd-be7a-b63e2c47183b" />
      </body>
      <title>101 LINQ Samples</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,a9034ca2-7aac-4acd-be7a-b63e2c47183b.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,a9034ca2-7aac-4acd-be7a-b63e2c47183b.aspx</link>
      <pubDate>Thu, 25 Oct 2007 19:30:39 GMT</pubDate>
      <description>&lt;p&gt;
Auf dieser Seite sind jede Menge&amp;nbsp;Beispiele zum Thema LINQ thematisch geordnet
aufgelistet. Hier findet man wirklich für viele Einsatzgebiete entsprechende Beispiele.
Wirklich&amp;nbsp;empfehlenswert!&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/vcsharp/aa336746.aspx"&gt;101 LINQ Samples&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=a9034ca2-7aac-4acd-be7a-b63e2c47183b" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,a9034ca2-7aac-4acd-be7a-b63e2c47183b.aspx</comments>
      <category>.Net 3.5;LINQ</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=f0e8bc9f-206c-43f3-981c-b38e213aa86d</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,f0e8bc9f-206c-43f3-981c-b38e213aa86d.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,f0e8bc9f-206c-43f3-981c-b38e213aa86d.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=f0e8bc9f-206c-43f3-981c-b38e213aa86d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Möchte man den kleinesten Key aus einem Dictionary abfragen, dann kann man das jetzt
mit Hilfe von LINQ ganz einfach tun. Das Dictionary-Objekt ist in C#3.0 mit einer
ensprechenden Extension versehen wordurch das Ganze so einfach ist, wie man sich das
immer gewünscht hat.
</p>
        <div>
          <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none">Dictionary&lt;<span style="COLOR: #0000ff">int</span>, <span style="COLOR: #0000ff">double</span>&gt;
ListObject = <span style="COLOR: #0000ff">new</span> Dictionary&lt;<span style="COLOR: #0000ff">int</span>,<span style="COLOR: #0000ff">double</span>&gt;
{ {2004, 1.5}, {2005, 2.7}, {2006, 3.8} }; <span style="COLOR: #0000ff">int</span> minYear
= ListObject.Min(l =&gt; l.Key); </pre>
        </div>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=f0e8bc9f-206c-43f3-981c-b38e213aa86d" />
      </body>
      <title>Mit LINQ den kleinsten Key in einem Dictionary abfragen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,f0e8bc9f-206c-43f3-981c-b38e213aa86d.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,f0e8bc9f-206c-43f3-981c-b38e213aa86d.aspx</link>
      <pubDate>Wed, 17 Oct 2007 09:25:48 GMT</pubDate>
      <description>&lt;p&gt;
Möchte man den kleinesten Key aus einem Dictionary abfragen, dann kann man das jetzt
mit Hilfe von LINQ ganz einfach tun. Das Dictionary-Objekt ist in C#3.0 mit einer
ensprechenden Extension versehen wordurch das Ganze so einfach ist, wie man sich das
immer gewünscht hat.
&lt;/p&gt;
&lt;div&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;Dictionary&amp;lt;&lt;span style="COLOR: #0000ff"&gt;int&lt;/span&gt;, &lt;span style="COLOR: #0000ff"&gt;double&lt;/span&gt;&amp;gt;
ListObject = &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span style="COLOR: #0000ff"&gt;int&lt;/span&gt;,&lt;span style="COLOR: #0000ff"&gt;double&lt;/span&gt;&amp;gt;
{ {2004, 1.5}, {2005, 2.7}, {2006, 3.8} }; &lt;span style="COLOR: #0000ff"&gt;int&lt;/span&gt; minYear
= ListObject.Min(l =&amp;gt; l.Key); &lt;/pre&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=f0e8bc9f-206c-43f3-981c-b38e213aa86d" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,f0e8bc9f-206c-43f3-981c-b38e213aa86d.aspx</comments>
      <category>.Net 3.5;C# 3.0;VS 2008</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=356c85a7-bbaa-497d-a9a1-aea17de9012f</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,356c85a7-bbaa-497d-a9a1-aea17de9012f.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,356c85a7-bbaa-497d-a9a1-aea17de9012f.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=356c85a7-bbaa-497d-a9a1-aea17de9012f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Vor kurzem hatte ich in einem <a href="http://www.artiso.com/ProBlog/PermaLink,guid,4614e22e-6861-40f9-b030-0177fb8a2b40.aspx">Post</a> beschrieben,
wie man mit C#3.0 Listen effizient initialisieren kann. Das Ganze funktioniert übrigens
auch mit Dictionaries. Das siehtr dann einfach so aus:
</p>
        <div>
          <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">productVersion.Sales = <span style="color: #0000ff">new</span> Dictionary&lt;<span style="color: #0000ff">int</span>,<span style="color: #0000ff">double</span>&gt;
{ {2004, 1.5}, {2005, 2.7}, {2006, 3.8} };</pre>
        </div>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=356c85a7-bbaa-497d-a9a1-aea17de9012f" />
      </body>
      <title>Dictionaries in C#3.0 initialisieren</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,356c85a7-bbaa-497d-a9a1-aea17de9012f.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,356c85a7-bbaa-497d-a9a1-aea17de9012f.aspx</link>
      <pubDate>Wed, 17 Oct 2007 08:29:20 GMT</pubDate>
      <description>&lt;p&gt;
Vor kurzem hatte ich in einem &lt;a href="http://www.artiso.com/ProBlog/PermaLink,guid,4614e22e-6861-40f9-b030-0177fb8a2b40.aspx"&gt;Post&lt;/a&gt; beschrieben,
wie man mit C#3.0 Listen effizient initialisieren kann. Das Ganze funktioniert übrigens
auch mit Dictionaries. Das siehtr dann einfach so aus:
&lt;/p&gt;
&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;productVersion.Sales = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;,&lt;span style="color: #0000ff"&gt;double&lt;/span&gt;&amp;gt;
{ {2004, 1.5}, {2005, 2.7}, {2006, 3.8} };&lt;/pre&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=356c85a7-bbaa-497d-a9a1-aea17de9012f" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,356c85a7-bbaa-497d-a9a1-aea17de9012f.aspx</comments>
      <category>.Net 3.5;C# 3.0;VS 2008</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=4614e22e-6861-40f9-b030-0177fb8a2b40</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,4614e22e-6861-40f9-b030-0177fb8a2b40.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,4614e22e-6861-40f9-b030-0177fb8a2b40.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=4614e22e-6861-40f9-b030-0177fb8a2b40</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Objekte und Listen lassen sich jetzt in C# 3.0 sehr schön initialisieren. War bisher
um ein relativ einfaches Objekt zu initialisieren sehr viel Code erforderlich, hat
sich das nun deutlich verkürzt:
</p>
        <p>
Bisher:
</p>
        <div>
          <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">List&lt;cProduct&gt; Products = <span style="color: #0000ff">new</span> List&lt;cProduct&gt;();
cProduct Product = <span style="color: #0000ff">new</span> cProduct(); Product.ID
= 1; Product.BusinessDevelopmentComment = <span style="color: #006080">""</span>;
Product.MarketingComments = <span style="color: #006080">""</span>; Product.VersionDescriptions
= <span style="color: #0000ff">new</span> List&lt;cProductVersionDescription&gt;();
Product.INNs = <span style="color: #0000ff">new</span> List&lt;cProductINNItem&gt;();
cProductVersionDescription VersionDescription = <span style="color: #0000ff">new</span> cProductVersionDescription();
VersionDescription.ID = 1; VersionDescription.LastPCMDate = DateTime.Now; VersionDescription.LastPCMDecision
= <span style="color: #006080">"Go"</span>; VersionDescription.NPV = 689.54; VersionDescription.ProductID
= 1; VersionDescription.ProductVersionID = 1; VersionDescription.VersionName = <span style="color: #006080">"Version1"</span>;
Product.VersionDescriptions.Add(VersionDescription); cProductINNItem INN = <span style="color: #0000ff">new</span> cProductINNItem();
INN.INN = 8; INN.Dosage = 1.5; INN.DosageUnit = 1; INN.Volume = 1; INN.Comment = <span style="color: #006080">"Test-Comment"</span>;
INN.INNOrder = 1; Product.INNs.Add(INN); INN = <span style="color: #0000ff">new</span> cProductINNItem();
INN.INN = 2; INN.Dosage = 2.5; INN.DosageUnit = 2; INN.Volume = 2; INN.Comment = <span style="color: #006080">"Test-Comment2"</span>;
INN.INNOrder = 2; Product.INNs.Add(INN);</pre>
        </div>
        <div> 
</div>
        <p>
Neu mit C#3.0:
</p>
        <div>
          <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">List&lt;cProduct&gt; Products = <span style="color: #0000ff">new</span> List&lt;cProduct&gt;
{ <span style="color: #0000ff">new</span> cProduct{ ID = 1, BusinessDevelopmentComment
= <span style="color: #006080">""</span>, MarketingComments = <span style="color: #006080">""</span>,
VersionDescriptions = <span style="color: #0000ff">new</span> List&lt;cProductVersionDescription&gt;
{ <span style="color: #0000ff">new</span> cProductVersionDescription{ ID=1, LastPCMDate=DateTime.Now,
LastPCMDecision=<span style="color: #006080">"Go"</span>, NPV=689.54, ProductID=1,
ProductVersionID=1, VersionName=<span style="color: #006080">"Version1"</span>} },
INNs = <span style="color: #0000ff">new</span> List&lt;cProductINNItem&gt; { <span style="color: #0000ff">new</span> cProductINNItem{
INN=8, Dosage=1.5, DosageUnit=1, Volume=1, Comment=<span style="color: #006080">"Test-Comment"</span>,
INNOrder=1}, <span style="color: #0000ff">new</span> cProductINNItem{ INN=2, Dosage=2.5,
DosageUnit=2, Volume=2, Comment=<span style="color: #006080">"Test-Comment2"</span>,
INNOrder=2} } } };</pre>
        </div>
        <p>
 
</p>
        <p>
Bisher konnte man den Code noch etwas vereinfachen, indem man einen entsprechenden
Konstruktor für die Objekte erstellt hat, in dem die Initialisierungswerte übergeben
werden konnten. Hier bietet die neue Version aber den Vorteil, dass diese leichter
zu leesen ist, da die Parameter hier entsprechend bezeichnet sind. Beim Konstruktor
musste immer Intellisense zu Hilfe genommen werden um herauszufinden, um welchen Parameter
es sich handelt.
</p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=4614e22e-6861-40f9-b030-0177fb8a2b40" />
      </body>
      <title>Objekte und Listen in C# 3.0 initialisieren</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,4614e22e-6861-40f9-b030-0177fb8a2b40.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,4614e22e-6861-40f9-b030-0177fb8a2b40.aspx</link>
      <pubDate>Sat, 06 Oct 2007 16:17:22 GMT</pubDate>
      <description>&lt;p&gt;
Objekte und Listen lassen sich jetzt in C# 3.0 sehr schön initialisieren. War bisher
um ein relativ einfaches Objekt zu initialisieren sehr viel Code erforderlich, hat
sich das nun deutlich verkürzt:
&lt;/p&gt;
&lt;p&gt;
Bisher:
&lt;/p&gt;
&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;List&amp;lt;cProduct&amp;gt; Products = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;cProduct&amp;gt;();
cProduct Product = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProduct(); Product.ID
= 1; Product.BusinessDevelopmentComment = &lt;span style="color: #006080"&gt;""&lt;/span&gt;;
Product.MarketingComments = &lt;span style="color: #006080"&gt;""&lt;/span&gt;; Product.VersionDescriptions
= &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;cProductVersionDescription&amp;gt;();
Product.INNs = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;cProductINNItem&amp;gt;();
cProductVersionDescription VersionDescription = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProductVersionDescription();
VersionDescription.ID = 1; VersionDescription.LastPCMDate = DateTime.Now; VersionDescription.LastPCMDecision
= &lt;span style="color: #006080"&gt;"Go"&lt;/span&gt;; VersionDescription.NPV = 689.54; VersionDescription.ProductID
= 1; VersionDescription.ProductVersionID = 1; VersionDescription.VersionName = &lt;span style="color: #006080"&gt;"Version1"&lt;/span&gt;;
Product.VersionDescriptions.Add(VersionDescription); cProductINNItem INN = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProductINNItem();
INN.INN = 8; INN.Dosage = 1.5; INN.DosageUnit = 1; INN.Volume = 1; INN.Comment = &lt;span style="color: #006080"&gt;"Test-Comment"&lt;/span&gt;;
INN.INNOrder = 1; Product.INNs.Add(INN); INN = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProductINNItem();
INN.INN = 2; INN.Dosage = 2.5; INN.DosageUnit = 2; INN.Volume = 2; INN.Comment = &lt;span style="color: #006080"&gt;"Test-Comment2"&lt;/span&gt;;
INN.INNOrder = 2; Product.INNs.Add(INN);&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;p&gt;
Neu mit C#3.0:
&lt;/p&gt;
&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;List&amp;lt;cProduct&amp;gt; Products = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;cProduct&amp;gt;
{ &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProduct{ ID = 1, BusinessDevelopmentComment
= &lt;span style="color: #006080"&gt;""&lt;/span&gt;, MarketingComments = &lt;span style="color: #006080"&gt;""&lt;/span&gt;,
VersionDescriptions = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;cProductVersionDescription&amp;gt;
{ &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProductVersionDescription{ ID=1, LastPCMDate=DateTime.Now,
LastPCMDecision=&lt;span style="color: #006080"&gt;"Go"&lt;/span&gt;, NPV=689.54, ProductID=1,
ProductVersionID=1, VersionName=&lt;span style="color: #006080"&gt;"Version1"&lt;/span&gt;} },
INNs = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;cProductINNItem&amp;gt; { &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProductINNItem{
INN=8, Dosage=1.5, DosageUnit=1, Volume=1, Comment=&lt;span style="color: #006080"&gt;"Test-Comment"&lt;/span&gt;,
INNOrder=1}, &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProductINNItem{ INN=2, Dosage=2.5,
DosageUnit=2, Volume=2, Comment=&lt;span style="color: #006080"&gt;"Test-Comment2"&lt;/span&gt;,
INNOrder=2} } } };&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Bisher konnte man den Code noch etwas vereinfachen, indem man einen entsprechenden
Konstruktor für die Objekte erstellt hat, in dem die Initialisierungswerte übergeben
werden konnten. Hier bietet die neue Version aber den Vorteil, dass diese leichter
zu leesen ist, da die Parameter hier entsprechend bezeichnet sind. Beim Konstruktor
musste immer Intellisense zu Hilfe genommen werden um herauszufinden, um welchen Parameter
es sich handelt.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=4614e22e-6861-40f9-b030-0177fb8a2b40" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,4614e22e-6861-40f9-b030-0177fb8a2b40.aspx</comments>
      <category>.Net 3.5;Know-How;VS 2008</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=dbf52623-b452-423f-b289-49929a9e4791</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,dbf52623-b452-423f-b289-49929a9e4791.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,dbf52623-b452-423f-b289-49929a9e4791.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=dbf52623-b452-423f-b289-49929a9e4791</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ich habe in einer Anwendung ein Objekt, das über ca. 30 List&lt;double&gt; Properties
verfügt. Dieses Objekt möchte ich nun mit LINQ to SQL in die Datenbank schreiben.
Natürlich unterstützt LINQ 1:n-Beziehungen in Objekten aber in der Datenbank müsste
ich dann für jedes List-Property eine eigene Tabelle anlegen und für jedes Property
einen eigenen Typ definieren. Das schien mir doch sehr umständlich.
</p>
        <p>
Ich habe dann nach einer Möglichkeit gesucht, die List-Elemente etwas effizieter zu
speichern, am einfachsten in einem Feld je Liste, da ich die für die Abfrage eh nicht
brauche. Aber wie kann ich die Ausgabe von LINQ in die Datenbank steuern? Wie kann
ich erreichen, dass LINQ meine Daten entsprechend formatiert?
</p>
        <p>
Googeln brachte keine vernünftigen Ergebnisse und sonst bin ich auch nicht fündig
geworden, aber dann kam die Idee (manchmal ist es schneller erst nachzudenken bevor
man googelt, aber das vergisst man oft ;-)). Die Grundidee war, für jede Liste noch
ein zusätzliches Property anlegen, das die Daten im Getter und Setter entsprechend
formatiert. Die Hoffnung war, wenn ich dieses Property mit einem Column-Attribut versehe,
wird LINQ den formatierten Inhalt schreiben und beim Lesen wieder zurückformatieren.
</p>
        <div>
          <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <span style="color: #0000ff">public</span> List&lt;<span style="color: #0000ff">string</span>&gt;
Sales { get; set; } [Column(Name=<span style="color: #006080">"Sales"</span>, DbType
= <span style="color: #006080">"nvarchar(4000)"</span>)] <span style="color: #0000ff">private</span><span style="color: #0000ff">string</span> SalesString
{ get { <span style="color: #0000ff">return</span><span style="color: #0000ff">string</span>.Join(<span style="color: #006080">"|"</span>,
Sales.ToArray()); } set { <span style="color: #0000ff">if</span> (<span style="color: #0000ff">value</span> != <span style="color: #0000ff">null</span>)
Sales = <span style="color: #0000ff">value</span>.Split(<span style="color: #006080">'|'</span>).ToList();
} }</pre>
        </div>
        <p>
 
</p>
        <p>
Ich habe einfach eine Text-Spalte in der Datenbank verwendet und die einzelnen List-Elemente
mit einem Trennzeichen verbunden (der Einfachkeit halber habe ich mit einer List of
Strings gearbeitet. Für die Tests ist das ausreichend und sollte auf beliebige andere
Typen übertragbar sein). 
</p>
        <p>
Einen kleinen Stolperstein gibt es noch. Beim Ausführen erhielt ich folgende Meldung:
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ListeneffizientspeichernmitLINQtoSQL_9E29/image.png" atomicselection="true">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="242" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ListeneffizientspeichernmitLINQtoSQL_9E29/image_thumb.png" width="431" border="0" />
          </a>
        </p>
        <p>
LINQ verwendet Optimistic Locking für das Schreiben und hat wohl Probleme, wenn der
Inhalt des Property im Getter verändert wird. Abhilfe schafft hier das zusätzliche
Attribut UpdateCheck, also sollte das Attribut zu dem Property so aussehen:
</p>
        <div>
          <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">[Column(Name=<span style="color: #006080">"Sales"</span>,
DbType = <span style="color: #006080">"nvarchar(4000)"</span>, UpdateCheck=UpdateCheck.Never)]</pre>
        </div>
        <p>
 
</p>
        <p>
Hier sind natürlich auch noch andere Möglichkeiten der Datenrepräsentation möglich.
Hier mal ein Beispiel mit XML-Serialisierung und diesesmal auch mit Doubl-Werten.
</p>
        <div>
          <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <span style="color: #0000ff">public</span> List&lt;<span style="color: #0000ff">double</span>&gt;
Sales { get; set; } [Column(Name=<span style="color: #006080">"Sales"</span>, DbType
= <span style="color: #006080">"xml"</span>, UpdateCheck=UpdateCheck.Never)] <span style="color: #0000ff">private</span><span style="color: #0000ff">string</span> SalesString
{ get { UTF8Encoding encoding = <span style="color: #0000ff">new</span> UTF8Encoding();
MemoryStream ms = <span style="color: #0000ff">new</span> MemoryStream(); XmlSerializer
xmlSer = <span style="color: #0000ff">new</span> XmlSerializer(<span style="color: #0000ff">typeof</span>(List&lt;<span style="color: #0000ff">double</span>&gt;));
xmlSer.Serialize(ms, Sales); <span style="color: #0000ff">return</span> encoding.GetString(ms.ToArray());
} set { <span style="color: #0000ff">if</span> (<span style="color: #0000ff">value</span> != <span style="color: #0000ff">null</span>)
{ UTF8Encoding encoding = <span style="color: #0000ff">new</span> UTF8Encoding();
MemoryStream ms = <span style="color: #0000ff">new</span> MemoryStream(encoding.GetBytes(<span style="color: #0000ff">value</span>));
XmlSerializer xmlSer = <span style="color: #0000ff">new</span> XmlSerializer(<span style="color: #0000ff">typeof</span>(List&lt;<span style="color: #0000ff">double</span>&gt;));
Sales = (List&lt;<span style="color: #0000ff">double</span>&gt;)xmlSer.Deserialize(ms);
} } }</pre>
        </div>
        <p>
 
</p>
        <p>
Dank an Bernhard Gojer für den Lösungsansatz.
</p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=dbf52623-b452-423f-b289-49929a9e4791" />
      </body>
      <title>Listen effizient speichern mit LINQ to SQL</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,dbf52623-b452-423f-b289-49929a9e4791.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,dbf52623-b452-423f-b289-49929a9e4791.aspx</link>
      <pubDate>Tue, 18 Sep 2007 10:09:29 GMT</pubDate>
      <description>&lt;p&gt;
Ich habe in einer Anwendung ein Objekt, das über ca. 30 List&amp;lt;double&amp;gt; Properties
verfügt. Dieses Objekt möchte ich nun mit LINQ to SQL in die Datenbank schreiben.
Natürlich unterstützt LINQ 1:n-Beziehungen in Objekten aber in der Datenbank müsste
ich dann für jedes List-Property eine eigene Tabelle anlegen und für jedes Property
einen eigenen Typ definieren. Das schien mir doch sehr umständlich.
&lt;/p&gt;
&lt;p&gt;
Ich habe dann nach einer Möglichkeit gesucht, die List-Elemente etwas effizieter zu
speichern, am einfachsten in einem Feld je Liste, da ich die für die Abfrage eh nicht
brauche. Aber wie kann ich die Ausgabe von LINQ in die Datenbank steuern? Wie kann
ich erreichen, dass LINQ meine Daten entsprechend formatiert?
&lt;/p&gt;
&lt;p&gt;
Googeln brachte keine vernünftigen Ergebnisse und sonst bin ich auch nicht fündig
geworden, aber dann kam die Idee (manchmal ist es schneller erst nachzudenken bevor
man googelt, aber das vergisst man oft ;-)). Die Grundidee war, für jede Liste noch
ein zusätzliches Property anlegen, das die Daten im Getter und Setter entsprechend
formatiert. Die Hoffnung war, wenn ich dieses Property mit einem Column-Attribut versehe,
wird LINQ den formatierten Inhalt schreiben und beim Lesen wieder zurückformatieren.
&lt;/p&gt;
&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; List&amp;lt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;gt;
Sales { get; set; } [Column(Name=&lt;span style="color: #006080"&gt;"Sales"&lt;/span&gt;, DbType
= &lt;span style="color: #006080"&gt;"nvarchar(4000)"&lt;/span&gt;)] &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; SalesString
{ get { &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt;.Join(&lt;span style="color: #006080"&gt;"|"&lt;/span&gt;,
Sales.ToArray()); } set { &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;value&lt;/span&gt; != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)
Sales = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;.Split(&lt;span style="color: #006080"&gt;'|'&lt;/span&gt;).ToList();
} }&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Ich habe einfach eine Text-Spalte in der Datenbank verwendet und die einzelnen List-Elemente
mit einem Trennzeichen verbunden (der Einfachkeit halber habe ich mit einer List of
Strings gearbeitet. Für die Tests ist das ausreichend und sollte auf beliebige andere
Typen übertragbar sein). 
&lt;/p&gt;
&lt;p&gt;
Einen kleinen Stolperstein gibt es noch. Beim Ausführen erhielt ich folgende Meldung:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ListeneffizientspeichernmitLINQtoSQL_9E29/image.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="242" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ListeneffizientspeichernmitLINQtoSQL_9E29/image_thumb.png" width="431" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
LINQ verwendet Optimistic Locking für das Schreiben und hat wohl Probleme, wenn der
Inhalt&amp;nbsp;des&amp;nbsp;Property im Getter verändert wird. Abhilfe schafft hier das zusätzliche
Attribut UpdateCheck, also sollte das Attribut zu dem Property so aussehen:
&lt;/p&gt;
&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;[Column(Name=&lt;span style="color: #006080"&gt;"Sales"&lt;/span&gt;,
DbType = &lt;span style="color: #006080"&gt;"nvarchar(4000)"&lt;/span&gt;, UpdateCheck=UpdateCheck.Never)]&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Hier sind natürlich auch noch andere Möglichkeiten der Datenrepräsentation möglich.
Hier mal ein Beispiel mit XML-Serialisierung und diesesmal auch mit Doubl-Werten.
&lt;/p&gt;
&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; List&amp;lt;&lt;span style="color: #0000ff"&gt;double&lt;/span&gt;&amp;gt;
Sales { get; set; } [Column(Name=&lt;span style="color: #006080"&gt;"Sales"&lt;/span&gt;, DbType
= &lt;span style="color: #006080"&gt;"xml"&lt;/span&gt;, UpdateCheck=UpdateCheck.Never)] &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; SalesString
{ get { UTF8Encoding encoding = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; UTF8Encoding();
MemoryStream ms = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; MemoryStream(); XmlSerializer
xmlSer = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; XmlSerializer(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(List&amp;lt;&lt;span style="color: #0000ff"&gt;double&lt;/span&gt;&amp;gt;));
xmlSer.Serialize(ms, Sales); &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; encoding.GetString(ms.ToArray());
} set { &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;value&lt;/span&gt; != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)
{ UTF8Encoding encoding = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; UTF8Encoding();
MemoryStream ms = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; MemoryStream(encoding.GetBytes(&lt;span style="color: #0000ff"&gt;value&lt;/span&gt;));
XmlSerializer xmlSer = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; XmlSerializer(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(List&amp;lt;&lt;span style="color: #0000ff"&gt;double&lt;/span&gt;&amp;gt;));
Sales = (List&amp;lt;&lt;span style="color: #0000ff"&gt;double&lt;/span&gt;&amp;gt;)xmlSer.Deserialize(ms);
} } }&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Dank an Bernhard Gojer für den Lösungsansatz.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=dbf52623-b452-423f-b289-49929a9e4791" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,dbf52623-b452-423f-b289-49929a9e4791.aspx</comments>
      <category>.Net 3.5;LINQ</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=da96e299-698b-4f4d-b4d2-71cba3300ee0</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,da96e299-698b-4f4d-b4d2-71cba3300ee0.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,da96e299-698b-4f4d-b4d2-71cba3300ee0.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=da96e299-698b-4f4d-b4d2-71cba3300ee0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Scott Gutherie hat in seinem Blog eine interessante Artikel-Serie zu LINQ to SQL 
</p>
        <blockquote>
          <p>
            <strong>
              <u>Data Access Improvements with LINQ to SQL</u>
            </strong>
          </p>
          <p>
LINQ to SQL is a built-in OR/M (object relational mapper) in .NET 3.5.  It enables
you to model relational databases using a .NET object model.  You can then
query the database using LINQ, as well as update/insert/delete data from it. 
LINQ to SQL fully supports transactions, views, and stored procedures.  It also
provides an easy way to integrate business logic and validation rules into your data
model.  Below are some of the articles I've written that explore how to use it:
</p>
          <ul>
            <li>
              <a href="http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx" target="_blank">
                <u>
                  <font color="#800080">Part
1: Introduction to LINQ to SQL</font>
                </u>
              </a>
            </li>
            <li>
              <a href="http://weblogs.asp.net/scottgu/archive/2007/05/29/linq-to-sql-part-2-defining-our-data-model-classes.aspx" target="_blank">
                <u>
                  <font color="#0066cc">Part
2: Defining our Data Model Classes</font>
                </u>
              </a>
            </li>
            <li>
              <a href="http://weblogs.asp.net/scottgu/archive/2007/06/29/linq-to-sql-part-3-querying-our-database.aspx" target="_blank">
                <u>
                  <font color="#0066cc">Part
3: Querying our Database</font>
                </u>
              </a>
            </li>
            <li>
              <a href="http://weblogs.asp.net/scottgu/archive/2007/07/11/linq-to-sql-part-4-updating-our-database.aspx" target="_blank">
                <u>
                  <font color="#0066cc">Part
4: Updating our Database</font>
                </u>
              </a>
            </li>
            <li>
              <a href="http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx" target="_blank">
                <u>
                  <font color="#800080">Part
5: Binding UI using the ASP:LinqDataSource Control</font>
                </u>
              </a>
            </li>
          </ul>
          <p>
I'll be adding several more articles to my series above in the weeks ahead. 
I think you'll find that LINQ to SQL makes it dramatically easier to build much
cleaner data models, and write much cleaner data code.
</p>
        </blockquote>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=da96e299-698b-4f4d-b4d2-71cba3300ee0" />
      </body>
      <title>LINQ to SQL</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,da96e299-698b-4f4d-b4d2-71cba3300ee0.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,da96e299-698b-4f4d-b4d2-71cba3300ee0.aspx</link>
      <pubDate>Sat, 28 Jul 2007 02:39:55 GMT</pubDate>
      <description>&lt;p&gt;
Scott Gutherie hat in seinem Blog eine interessante Artikel-Serie zu LINQ to SQL &lt;blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;&lt;u&gt;Data Access Improvements with LINQ to SQL&lt;/u&gt;&lt;/strong&gt; 
&lt;p&gt;
LINQ to SQL is a built-in OR/M (object relational mapper) in .NET 3.5.&amp;nbsp; It enables
you to model relational databases using a&amp;nbsp;.NET object model.&amp;nbsp; You can then
query the database using LINQ, as well as update/insert/delete data from it.&amp;nbsp;
LINQ to SQL fully supports transactions, views, and stored procedures.&amp;nbsp; It also
provides an easy way to integrate business logic and validation rules into your data
model.&amp;nbsp; Below are some of the articles I've written that explore how to use it:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx" target="_blank"&gt;&lt;u&gt;&lt;font color="#800080"&gt;Part
1: Introduction to LINQ to SQL&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/05/29/linq-to-sql-part-2-defining-our-data-model-classes.aspx" target="_blank"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Part
2: Defining our Data Model Classes&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/06/29/linq-to-sql-part-3-querying-our-database.aspx" target="_blank"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Part
3: Querying our Database&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/07/11/linq-to-sql-part-4-updating-our-database.aspx" target="_blank"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Part
4: Updating our Database&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx" target="_blank"&gt;&lt;u&gt;&lt;font color="#800080"&gt;Part
5: Binding UI using the ASP:LinqDataSource Control&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I'll be adding several more articles to my series above in the weeks ahead.&amp;nbsp;
I think you'll find that LINQ to SQL makes it dramatically easier to&amp;nbsp;build much
cleaner data models, and write much cleaner data code.
&lt;/p&gt;
&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=da96e299-698b-4f4d-b4d2-71cba3300ee0" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,da96e299-698b-4f4d-b4d2-71cba3300ee0.aspx</comments>
      <category>.Net 3.5;LINQ;SQL</category>
    </item>
  </channel>
</rss>