tag:blogger.com,1999:blog-2709953985850235892.post3250373018152908361..comments2023-12-26T13:00:50.432+05:00Comments on Sam's tricks: Короткий синтаксис ADO .NET (часть IV)samiushttp://www.blogger.com/profile/07077092465879898832noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-2709953985850235892.post-26368072934466984662010-08-25T23:20:35.849+06:002010-08-25T23:20:35.849+06:00на сколько я помню, MakeCommand создает команду с ...на сколько я помню, MakeCommand создает команду с помощью метода connection-а. Мистики там точно нет.samiushttps://www.blogger.com/profile/07077092465879898832noreply@blogger.comtag:blogger.com,1999:blog-2709953985850235892.post-39270222808114378922010-08-25T23:10:09.564+06:002010-08-25T23:10:09.564+06:00Еще не ясно как реализована
IDbCommand MakeCom...Еще не ясно как реализована<br /> IDbCommand MakeCommand(string text, params Parameter[] parameters); <br /><br />без connection. Если не сложно киньте таки исходники на adm-Beat@yandex.ruAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-2709953985850235892.post-87203823774292589262010-08-25T23:02:53.210+06:002010-08-25T23:02:53.210+06:00Да, правильно. Но есть еще способы: Emit и деревья...Да, правильно. Но есть еще способы: Emit и деревья выражений.<br />кроме анонимных типов можно обрабатывать и нормальные.samiushttps://www.blogger.com/profile/07077092465879898832noreply@blogger.comtag:blogger.com,1999:blog-2709953985850235892.post-51393019827505577362010-08-25T22:52:56.432+06:002010-08-25T22:52:56.432+06:00Я правильно понимаю, из этого new { age = 20 } с п...Я правильно понимаю, из этого new { age = 20 } с помощью рефлекшн извлекать имена свойств и их типы и формировать список параметров? Прикольно однакоAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-2709953985850235892.post-56597487778855807272010-08-25T18:47:08.025+06:002010-08-25T18:47:08.025+06:00Незачто. Рад что кому-то пригодилось.
Вот до кучи...Незачто. Рад что кому-то пригодилось.<br /><br />Вот до кучи идея передачи параметров в виде экземпляра анонимного типа (как выяснилось, не моя идея):<br /><br />public IDbCommand MakeCommand(string commandText, T parameters)<br />{<br /> return MakeCommand(commandText, Parameter.Convert2Parameters(parameters));<br />}<br />// usage<br />MakeCommand("SELECT ...", new { age = 20 });samiushttps://www.blogger.com/profile/07077092465879898832noreply@blogger.comtag:blogger.com,1999:blog-2709953985850235892.post-67879097172441829352010-08-25T17:25:26.117+06:002010-08-25T17:25:26.117+06:00Спасибо, но в таком виде уже скопипастил :)))
Не ...Спасибо, но в таком виде уже скопипастил :)))<br /><br />Не хочется тащить на гуевый проект со встроенной бд (sqlite) hibernate, а ваше творчество более-менее подходит...Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2709953985850235892.post-85773392931355343392010-08-24T23:54:28.519+06:002010-08-24T23:54:28.519+06:00>А вы не могли бы выложить сиходники этой библи...>А вы не могли бы выложить сиходники этой библиотеки? <br /><br />Сиходники из рабочего проекта выложить не могу. Могу выслать на почту сиходник, который был подготовлен для блога. То есть примерно в том виде, в котором он представлен в блоге, в состоянии далеком от продакш кода.samiushttps://www.blogger.com/profile/07077092465879898832noreply@blogger.comtag:blogger.com,1999:blog-2709953985850235892.post-86481057732462450522010-08-24T19:53:08.416+06:002010-08-24T19:53:08.416+06:00А вы не могли бы выложить сиходники этой библиотек...А вы не могли бы выложить сиходники этой библиотеки?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2709953985850235892.post-53055040722402517772008-09-28T01:05:00.000+06:002008-09-28T01:05:00.000+06:00xoposhiy>На правах бреда выскажу гипотезу о том...<I>xoposhiy>На правах бреда выскажу гипотезу о том, что у MS есть цель привязать как можно больше народа к платформе Windows. Эту цель они достигают в два этапа</I><BR/><BR/>Не такой уж бред. Это действительно так, и это нормально (Sun имеет аналогичную цель). Только этапов в достижении этой цели куда больше, и кодогенераторы играют там весьма небольшую роль.<BR/><BR/>Мне кажется, что такие велосипеды, которые изобретаются в любой компании, знакомой со словами "рефакторинг" и "дублирование кода", для MS лишь полумеры. Наверняка такие же велосипеды изобретены и в MS, просто продвижение их в массы дорого и не нужно (есть LINQ2SQL, который еще больше привяжет к платформе). Т.е. было "не до того".samiushttps://www.blogger.com/profile/07077092465879898832noreply@blogger.comtag:blogger.com,1999:blog-2709953985850235892.post-65669421781718645972008-09-28T00:30:00.000+06:002008-09-28T00:30:00.000+06:00На правах бреда выскажу гипотезу о том, что у MS е...На правах бреда выскажу гипотезу о том, что у MS есть цель привязать как можно больше народа к платформе Windows. Эту цель они достигают в два этапа: Во-первых, привязывают разработчиков к .NET, а во-вторых, привязывают .NET к Visual Studio, которая уже привязана к Windows. Так вод для привязки к VS приходится пропагандировать кодогенераторы.<BR/><BR/>Есть конечно и более реалистичные гипотезы. Например, гипотеза "умных людей везде не хватает." :)<BR/><BR/>Кстати, мы у себя такой же велосипед изобрели. Только назвали его OpenedConnection. :) Может не столь красивый, но смысл тот же - обернуть в человеческий вид ADO.NET.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2709953985850235892.post-16575361852459149912008-08-31T17:55:00.000+06:002008-08-31T17:55:00.000+06:00serge>Вот только пока проектов под третий шарп ...serge>Вот только пока проектов под третий шарп пока нету.<BR/><BR/>Большая часть кода обертки может быть адаптирована под C# 2.0. Кажется единственное, что не получится адаптировать - extension метод CreateSession(this IDbConnection). А без него можно легко обойтись.samiushttps://www.blogger.com/profile/07077092465879898832noreply@blogger.comtag:blogger.com,1999:blog-2709953985850235892.post-65761793664416081862008-08-31T17:09:00.000+06:002008-08-31T17:09:00.000+06:00Да, интересная обёрточка, попробую применить, когд...Да, интересная обёрточка, попробую применить, когда в следующий раз буду бороться с ADO.NET. Вот только пока проектов под третий шарп пока нету.Сергей Слеповhttps://www.blogger.com/profile/08982405781338548169noreply@blogger.com