powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Велосипедная поделка вместо Linq to SQL класса
9 сообщений из 9, страница 1 из 1
Велосипедная поделка вместо Linq to SQL класса
    #39680253
sergix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Друзья,
зацените, пожалуйста, поделку мойграббер
Процитирую внутренности, чтобы кому не интересно не полез:
один классик переносит всю схему SQL базы в c# для готового использования. Является сильно упращенным аналогом "Linq to SQL classes", написан простым языком, может быть исправлен. Логика заключается в следующем, Вы добавляете SqlGrabber.cs в своей проект, далее пишете в любой из исполняемых функций следующее:

SqlGrabber.grabSql("строка коннекта к БД", "схема, которую собираемся забрать",ТИП сборки); и запускаем проект Типы сборки 3: GrabProcedures забираем процедуры создастся SqlProcedures.cs(Так-же создатся SqlExtension.cs), в корне проекта;

GrabClassesAndProcedures создастся SqlProcedures,SqlClasses,SqlExtension в корне проекта;

GrabClassesAndProceduresAndAddToProject попытается используя XML синтаксис добавить вам все эти 3 файла в проект.

Использование: Обычная выборка из таблицы. Например у вас есть таблица Products, забирали вы схему dbo.

var p = SqlExtension.selectTopOne<dbo.Product>();

фильтруем на стороне сервера

var p = SqlExtension.selectTopOne<dbo.Product>("where code=777");

Выбираем несколько

var pList = SqlExtension.selectAll<dbo.Product>("where code<1000");

Отсекаем и на сервере и на клиентской машине, не знаю зачем может понадобиться...

var pList = SqlExtension.selectAll<dbo.Product>("where code<1000").Where(pr=>pr.name.Contains("печеньки"));

Вызываем процедуру var z = dbo.Procedures.spxTakeToDayDocs();

А лучше сразу приводим к типу какой-нибудь таблицы, если поля позволяют

var doc = dbo.Procedures.spxTakeToDayDocs().ToObjects<dbo.doc>(); В последней переменной всегда идет возможность использовать транзакцию.

dbo.Procedures.spxCompleteDoc(true);

Произвольный запрос:

var product = SqlExtension.takeResult("select * from Product p inner join BarCodes b on p.code=b.code where b.barcode=@barcode",new object[]{"8722700080985"}).ToObject<dbo.Product>();
...
Рейтинг: 0 / 0
Велосипедная поделка вместо Linq to SQL класса
    #39680260
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergix,

чёт какая-то вафля неюзабельная
...
Рейтинг: 0 / 0
Велосипедная поделка вместо Linq to SQL класса
    #39680312
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergixОтсекаем и на сервере и на клиентской машине, не знаю зачем может понадобиться...

var pList = SqlExtension.selectAll<dbo.Product>("where code<1000").Where(pr=>pr.name.Contains("печеньки"));


Это если контекст на клиенте шире и запрос не очищает контекст или запрос на вырост - вощем неплохая штука IQ и IE в одном флаконе
...
Рейтинг: 0 / 0
Велосипедная поделка вместо Linq to SQL класса
    #39680378
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвощем неплохая штука IQ и IE в одном флаконе

IE "в одном флаконе" идёт в .NET ко всему вообще
Действительно, неплохая штука, разработчики .net постарались

В общем.

YouTube Video
...
Рейтинг: 0 / 0
Велосипедная поделка вместо Linq to SQL класса
    #39680827
sergix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну этого и ожидал :) Увидел Linq to SQL classes уже после того, как сварганил такую поделку.
Есть ли ещё какие-то стандартные инструменты, которые следовало бы знать, прежде чем делать такую штуку?
Пожалуйста, без абривеатур.
Так-же делал для пущего понимания <T> синтаксиса. Есть ли критические замечания, что я сделал очень плохо? Буду рад.
...
Рейтинг: 0 / 0
Велосипедная поделка вместо Linq to SQL класса
    #39680830
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergix,

Этого вообще не нужно делать в виде программы на C#. Как минимум есть T4, как максимум CodeSmith и прочие тулузы.

Гуглите Entity Framework Database First.
...
Рейтинг: 0 / 0
Велосипедная поделка вместо Linq to SQL класса
    #39680836
sergix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, я обязательно посмотрю. Пока во всех подобных решениях были проблемы с применением процедур, в которых возвращается SELECT запрос, а именно приведение к конкретному классу если и возможно, то громоздко.
Я понимаю, что такие процедуры не классика и вообще не надо так делать, но они есть в нескольких базах.
...
Рейтинг: 0 / 0
Велосипедная поделка вместо Linq to SQL класса
    #39680837
sergix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergix,

не один select, а несколько. В разных ситуациях, в зависимости от входного параметра.
...
Рейтинг: 0 / 0
Велосипедная поделка вместо Linq to SQL класса
    #39680839
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergix,

Ну ещё Dapper гляньте.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Велосипедная поделка вместо Linq to SQL класса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]