Перейти к содержимому
tarakanoffth

m-r Tarakanoff

@tarakanoffth

На сайте с 22 августа 2010 г.Казахстан, Алматы

The best C# and .NET days are ahead of us. (25 Mar 2010 by Miguel de Icaza)

рейтинг

100

постов

47

комменты

116

подписчиков

14

подписок

5

Самый простой способ увидеть выражение LINQ to SQL в виде классического T-SQL-запроса.

У меня была задача, перевести все выражения LINQ to SQL, в обычный классический язык запросов T-SQL. На форумах, в основном, предлагали вытаскивать текст запроса, через создание объекта класса IQueryable, а затем обращаться к его свойствам или очень громоздкое решение в виде SQL-профайлера (перехватывать запросы на SQL-сервере). Оказалось, что в отладчике Visual Studio для этого есть всё необходимое. Допустим, у нас есть вот такое выражение LINQ to SQL: var query = from s in context.oxite_Subscriptions join sa in context.oxite_SubscriptionAnonymous on s.SubscriptionID equals sa.SubscriptionID into outer from o in outer.DefaultIfEmpty() join u in context.oxite_Users on s.UserID equals u.UserID where s.PostID == post.ID select s; Запускаем этот код на выполнение в отладчике Visual Studio и…

-4
0
603

SEO-ссылки в OXITE

Хотя блого-ссылки в этом движке и так были вполне удобочитаемы и привлекательны, я решил добавить им ещё немного SEO-привлекательности. Добавил новый класс-контейнер (модель) DateTimeData, который вставил, как параметр, в соответствующие действия контроллера блога (PostController), добавил привязку данных DateTimeDataBinder, где из строки запроса вида "/2010/08/", создавался готовый объект DateTimeData и подправил пути в классе OxiteRoutes (from /blog/{slug}/ to /blog/{year}/{month}/{slug}/). Ну и поправка в классе-расширении PostExtensions, чтобы ссылки на блого-посты формировались в новом формате. В представлениях ничего менять не пришлось, что радует (сказался отличный подход разработчиков, с паттерном MVC к проекту OXITE). Было "/blog/this-my-good-post/", стало "/blog/2010/08/this-my-…

-4
0
348

ADO.NET Entity Framework и System.Data.SQLite - Анонимные типы

Стоит забыть об использовании анонимных типов в запросах Entity Framework, чтобы избежать множества неприятных исключений типа NotSupportedException (...В этом контексте поддерживаются только типы-примитивы (такие как Int32, String, и Guid...). Отыскать в каком запросе использован анонимный тип очень трудно т.к. .NET использует отложенное выполнение.

Эта проблема известна и хорошо описана в MSDN.

-4
0
389

Какой метод сортировки использует .NET FRAMEWORK?

Недавно прочел один пост на тему "Всё ещё сортируете "пузырьком?". Если честно, то вообще никогда не задумывался, какой алгоритм сортировки использует метод Sort(), класса List<T> (и подобных классов в библиотеке .NET, и всех классов, которые работают с массивами в .NET). Но, в том посте, заинтересовали выкладки о производительности различных методов сортировки (того самого "пузырька" и метода Шелла). И я задумался-таки, а не подкачали разработчики Майкрософта в проекте .NET? В библиотеке MSDN, пришлось найти описание метода Sort(), класса List<T> и вот, привожу выдержку из ремарки к методу... ...This method uses Array.Sort, which uses the QuickSort algorithm. This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved.…

-4
0
251

System.Data.OptimisticConcurrencyException

System.Data.OptimisticConcurrencyException (Инструкции по обновлению, вставке или удалению из хранилища затронули непредвиденное число строк (0). Сущности могли быть изменены или удалены с момента их загрузки. Обновите записи диспетчера ObjectStateManager.). Такое исключение выбрасывается при попытке изменения полей строк в базе данных, которая построена на ADO.NET Entity Framework и System.Data.SQLite. Эту проблему я описывал в посте "ADO.NET Entity Framework и System.Data.SQLite - попытка глубокого прогружения". Проблема решилась! Тип данных полей. В документации по SQLite написано: ...The following table shows how many common datatype names from more traditional SQL implementations are converted into affinities by the five rules of the previous section... Datatypes In SQLite Version 3…

-4
0
1831

Oxite is an open source, web standards compliant, blog engine built on ASP.NET MVC

Отличная CMS от группы разработчиков Mix Online, которую они создали для своих очень интересных проектов (Lab - Mix Online).

В отличие от громоздких систем созданных на базе ASP.NET, Oxite сделан быстрым, легким, понятным для разработчиков. С правильной HTML-версткой (цитирую разработчиков "...We heart web standards...").

Есть один недостаток, вернее ограничение у этой CMS - она поддерживает только MS SQL базы данных. Например, хотелось бы что-то вроде SQLite, для автономного плавания на shared-хостинге. Однако, это решится в скором времени, поскольку я, с пеной у рта, катаю собственного поставщика данных SQLite для Oxite (при этом возникла большая проблема, о которой я писал в предыдущем посте).

-4
0
495

ADO.NET Entity Framework и System.Data.SQLite - попытка глубокого погружения.

Да, это была попытка, без особых успехов. Радужные перспективы малых веб-приложений, с собственным SQL-движком, мощными запросами на LINQ to Entities и "рисованием" красивых моделей баз данных, пропали по одной простой причине. По порядку: Есть база SQLite (которая представляет из себя файл с расширением *.db), сборка System.Data.SQLite (собственно сам движок базы данных) и Visual Studio (2008). Поскольку сборка движка реализует DbProviderFactory, то я без труда создал провайдер базы, соединение и набросал несколько стандартных запросов чтения, вставки, обновления и удаления (CRUD). Работает! Но это вчерашний день, поскольку писать SQL-запросы "ручками", как-то неинтересно. Поэтому добавил в проект модель ADO.NET EDM. Мастер создания модели запросил подключение к базе, я создал ему SQLite…

-4
0
1143