#sql-server #entity-framework
#sql-сервер #entity-framework
Вопрос:
В SQL Server есть отличный конструктор запросов, который позволяет мне легко писать любые сложные запросы. недавно я начал работать с Entity framework. Я знаю, что у него есть три способа запрашивать данные.
- LINQ для объектов
- Entity SQL
- Метод запроса
Существует ли какой- либо конструктор запросов для Entity Framework , такой как SQL query Designer? Я знаком с LINQ PAD, а также с этим конструктором запросов LINQ (я не смог использовать это программное обеспечение в 64-разрядной версии Windows 7). каковы ваши предложения?
Комментарии:
1. Мое мнение таково, что использование конструктора для определения запросов предназначено для создания простых запросов людьми, которые еще не очень хорошо знакомы с SQL. Я с трудом верю, что вы можете выполнить действительно сложный и оптимальный запрос в конструкторе. Мое предложение таково: не используйте конструкторы запросов и научитесь писать запросы SQL и Linq напрямую.
2. @Ladislav: Вы можете сэкономить много времени, используя конструктор запросов, вы можете уменьшить сложность и вы можете предотвратить неосторожные ошибки (отсутствие фигурных скобок, например) с дизайнерами. Это не имеет ничего общего с вашими реальными навыками в SQL.
Ответ №1:
LINQPad, вероятно, один из лучших. Мне действительно нравится, что is показывает мне, что такое SQL, который был сгенерирован из моего запроса LINQ, и я даже могу посмотреть на IL-код.
В нем нет графического конструктора, подобного конструктору запросов SQL, и это неплохо. Если вы действительно хотите что-то подобное, вы можете просто попросить этот инструмент сгенерировать SQL для вас. LINQ запрашивает данные на C #, и если вы запрашиваете базу данных, то это абстракция. Графический конструктор для LINQ был бы подобен наложению слоя поверх абстракции. Было бы еще больше мест, где интерпретация могла бы пойти не так, а конструктор запросов SQL далек от совершенства. Я не могу сказать вам, сколько раз на моей работе люди приносили мне запросы, созданные с помощью этого инструмента, и жаловались, что что-то не работает, и я вижу, что у них есть несколько соединений, которые просто неверны, или подзапросы, которые не имеют смысла.