|
Велосипедная поделка вместо Linq to SQL класса
|
|||
---|---|---|---|
#18+
Друзья, зацените, пожалуйста, поделку мойграббер Процитирую внутренности, чтобы кому не интересно не полез: один классик переносит всю схему 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>(); ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2018, 15:31 |
|
Велосипедная поделка вместо Linq to SQL класса
|
|||
---|---|---|---|
#18+
sergix, чёт какая-то вафля неюзабельная ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2018, 15:38 |
|
Велосипедная поделка вместо Linq to SQL класса
|
|||
---|---|---|---|
#18+
sergixОтсекаем и на сервере и на клиентской машине, не знаю зачем может понадобиться... var pList = SqlExtension.selectAll<dbo.Product>("where code<1000").Where(pr=>pr.name.Contains("печеньки")); Это если контекст на клиенте шире и запрос не очищает контекст или запрос на вырост - вощем неплохая штука IQ и IE в одном флаконе ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2018, 16:30 |
|
Велосипедная поделка вместо Linq to SQL класса
|
|||
---|---|---|---|
#18+
ViPRosвощем неплохая штука IQ и IE в одном флаконе IE "в одном флаконе" идёт в .NET ко всему вообще Действительно, неплохая штука, разработчики .net постарались В общем. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2018, 17:55 |
|
Велосипедная поделка вместо Linq to SQL класса
|
|||
---|---|---|---|
#18+
Ну этого и ожидал :) Увидел Linq to SQL classes уже после того, как сварганил такую поделку. Есть ли ещё какие-то стандартные инструменты, которые следовало бы знать, прежде чем делать такую штуку? Пожалуйста, без абривеатур. Так-же делал для пущего понимания <T> синтаксиса. Есть ли критические замечания, что я сделал очень плохо? Буду рад. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 07:36 |
|
Велосипедная поделка вместо Linq to SQL класса
|
|||
---|---|---|---|
#18+
sergix, Этого вообще не нужно делать в виде программы на C#. Как минимум есть T4, как максимум CodeSmith и прочие тулузы. Гуглите Entity Framework Database First. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 07:44 |
|
Велосипедная поделка вместо Linq to SQL класса
|
|||
---|---|---|---|
#18+
Спасибо, я обязательно посмотрю. Пока во всех подобных решениях были проблемы с применением процедур, в которых возвращается SELECT запрос, а именно приведение к конкретному классу если и возможно, то громоздко. Я понимаю, что такие процедуры не классика и вообще не надо так делать, но они есть в нескольких базах. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 08:11 |
|
Велосипедная поделка вместо Linq to SQL класса
|
|||
---|---|---|---|
#18+
sergix, не один select, а несколько. В разных ситуациях, в зависимости от входного параметра. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 08:11 |
|
|
start [/forum/topic.php?fid=20&msg=39680827&tid=1399292]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
141ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
others: | 309ms |
total: | 520ms |
0 / 0 |