ADO.net без написания SQL (особенно ГДЕ) - PullRequest
1 голос
/ 03 марта 2009

У меня есть идея, что использование SQL VIEWS для абстрагирования простых вычислений в базе данных (таких как подсчет отношения) достаточно, и вам не нужны процедуры (== процедурный код)

Простой sql view + a , где предложение >> хранимая процедура с параметрами иногда

При изложении этого я придумал способ получения данных таблицы / представления без написания SQL и без предложения where.

Но, к моему удивлению, в ADO.NET 2.0 или более поздних версиях, похоже, нет способа сделать это.

Позвольте мне рассказать вам, что я пытался:

  • SqlDataAdapter + SqlCommandBuilder по-прежнему требует, чтобы вы написали «SELECT ... FROM» и WHERE CLAUSE в строках (плюс, если вы поместите «где», вы не будете часто использовать Обновление / Вставить / DeleteCommand)

  • Типизированные наборы данных позволяют вам только получать _entire DataTable_s и затем применять к ним фильтры. Фильтры - это строки, без экранирования ... (необходимо удвоить одинарную кавычку!)

  • SQL для сущностей выглядел многообещающе, но они, похоже, ограничиваются MSSQL, генерируют раздутые запросы SQL, генерируют целый новый стек DAO (помимо существующих классов доменной модели), требуют .net 3.5+ для всего этого и т. д. (то есть для меня все это недостатки)

Другие ORM имеют те же проблемы, что и SQL для сущностей.

Мне нужен строгий тип доступа к таблицам базы данных / просмотров , которые:

  • не поставляется с другим набором DAO (K.I.S.S)
  • позволяет запрашивать таблицу без записи "SELECTs" в строках (строгого типа)
  • позволяет фильтровать ( WHERE ) таблицу с правильно экранированными параметрами (и без предварительного извлечения всех данных)
  • может позже выпускать обновления / вставки / удаления

Я довольно новичок в .Net, но не глуп: это существует?

Спасибо.

Ответы [ 11 ]

0 голосов
/ 17 июля 2009

Взгляните на Mindscapes Lightspeed продукты

Он строит строго типизированные модели запросов LINQ, которые приводят к эффективному коду SQL для различных механизмов баз данных и включают поддержку Memcached и Lucene

...