<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Павел Сурменок &#187; LINQ</title>
	<atom:link href="http://surmenok.ru/tag/linq/feed/" rel="self" type="application/rss+xml" />
	<link>http://surmenok.ru</link>
	<description></description>
	<lastBuildDate>Sun, 30 Dec 2018 03:13:00 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>LINQ</title>
		<link>http://surmenok.ru/2010/10/28/linq/</link>
		<comments>http://surmenok.ru/2010/10/28/linq/#comments</comments>
		<pubDate>Thu, 28 Oct 2010 12:42:16 +0000</pubDate>
		<dc:creator>pavel</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://surmenok.ru/?p=292</guid>
		<description><![CDATA[В данный момент я руковожу несколькими проектами на платформе .NET. Давно я не писал о разработке. Технологии разработки ПО за последние годы серьёзно развились. Чего только стоит Microsoft LINQ. Эта штука – фактически язык запросов для данных, независимо от их источника. Можно и для БД применять (это LINQ to SQL), можно для XML, можно для [...]]]></description>
				<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial; font-size: small;">В данный момент я руковожу несколькими проектами на платформе .NET. Давно я не писал о разработке. Технологии разработки ПО за последние годы серьёзно развились.</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial; font-size: small;">Чего только стоит <span style="mso-ansi-language: EN-US;" lang="EN-US">Microsoft</span><span lang="EN-US"> </span><span style="mso-ansi-language: EN-US;" lang="EN-US">LINQ</span>. Эта штука – фактически язык запросов для данных, независимо от их источника. Можно и для БД применять (это <span style="mso-ansi-language: EN-US;" lang="EN-US">LINQ</span><span lang="EN-US"> </span><span style="mso-ansi-language: EN-US;" lang="EN-US">to</span><span lang="EN-US"> </span><span style="mso-ansi-language: EN-US;" lang="EN-US">SQL</span>), можно для <span style="mso-ansi-language: EN-US;" lang="EN-US">XML</span>, можно для списков/массивов. На днях пришлось накидать простенькую софтину на пару сот строк кода, и для работы с данными (который в БД <span style="mso-ansi-language: EN-US;" lang="EN-US">SQL</span><span lang="EN-US"> </span><span style="mso-ansi-language: EN-US;" lang="EN-US">Server</span> 2008 лежат) решил применить <span style="mso-ansi-language: EN-US;" lang="EN-US">LINQ</span>. Ниже кусочек кода:</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial; font-size: small;"> </span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-size: 9.5pt; font-family: Consolas; color: blue;">using</span><span style="font-size: 9.5pt; font-family: Consolas;"> (<span style="color: #2b91af;">DataClassesDataContext</span> dc = <span style="color: blue;">new</span> <span style="color: #2b91af;">DataClassesDataContext</span>())</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-size: 9.5pt; font-family: Consolas;">{</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-size: 9.5pt; font-family: Consolas;"><span style="mso-spacerun: yes;"> </span>dc.Names.InsertAllOnSubmit(names</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-size: 9.5pt; font-family: Consolas;"><span style="mso-spacerun: yes;"> </span>.Where(n =&gt; n != <span style="color: #a31515;">&#8220;&#8221;</span>)</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-size: 9.5pt; font-family: Consolas;"><span style="mso-spacerun: yes;"> </span>.Distinct()</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-size: 9.5pt; font-family: Consolas;"><span style="mso-spacerun: yes;"> </span>.Except(dc.Names.Select(n =&gt; n.Title))</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-size: 9.5pt; font-family: Consolas;"><span style="mso-spacerun: yes;"> </span>.Select(n =&gt; <span style="color: blue;">new</span> <span style="color: #2b91af;">Name</span>() { Title = n })); </span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-size: 9.5pt; font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-size: 9.5pt; font-family: Consolas;"><span style="mso-spacerun: yes;"> </span>dc.SubmitChanges();</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-size: 9.5pt; font-family: Consolas;">}</span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-size: 9.5pt; font-family: Consolas;"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="mso-ansi-language: EN-US;" lang="EN-US"><span style="font-family: Arial; font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial; font-size: small;">Здесь я беру <span style="mso-ansi-language: EN-US;" lang="EN-US">string</span>[] и закидываю эти данные в БД, для каждого элемента массива создавая отдельную строку в таблице <span style="mso-ansi-language: EN-US;" lang="EN-US">Names</span>. При этом тут же делается проверка на уникальность, как в исходном массиве (если строка в массиве встречается дважды, то обрабатывается только один раз), так и в БД ( если в таблице уже есть строка с таким значением в поле <span style="mso-ansi-language: EN-US;" lang="EN-US">Title</span>, то я её не добавляю). Также проверяем на то, что строка не пустая.</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial; font-size: small;">Просто, кратко и удобно. На всё 10 строк простого хорошо читаемого кода.</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial; font-size: small;">С решениями <span style="mso-ansi-language: EN-US;" lang="EN-US">Microsoft</span><span lang="EN-US"> </span>приятно работать.</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial; font-size: small;"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial; font-size: small;">&#8211;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial; font-size: small;">Павел Сурменок</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="mso-ansi-language: EN-US;" lang="EN-US"><a href="http://surmenok.ru/"><span style="font-size: small;"><span style="font-family: Arial;">http<span style="mso-ansi-language: RU;" lang="RU">://</span>surmenok<span style="mso-ansi-language: RU;" lang="RU">.</span>ru<span style="mso-ansi-language: RU;" lang="RU">/</span></span></span></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="mso-spacerun: yes;"><span style="font-family: Arial; font-size: small;"> </span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://surmenok.ru/2010/10/28/linq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
