Как кто-то, кто недавно переключил проект от MySQL до Postgresql, я не сожалею о переключателе.
основным различием, с точки зрения Django, является более строгая ограничительная регистрация в Postgresql, который является хорошей вещью, и также это немного более утомительно, чтобы сделать ручные изменения схемы (иначе миграции).
существует, вероятно, приблизительно 6 приложений миграции базы данных Django там, и по крайней мере один не поддерживает Postgresql. Я не считаю это недостатком хотя, потому что можно использовать одного из других или сделать их вручную (который является тем, что я предпочитаю банкомат).
Полнотекстовый поиск мог бы лучше поддерживаться для MySQL. MySQL поддерживали встроенный полнотекстовый поиск из Django, но это довольно бесполезно (никакое выделение основы слова, поиск фразы, и т.д.). Я использовал django-сфинкс как более оптимальный вариант для полнотекстового поиска в MySQL.
Полнотекстовый поиск встроен с Postgresql 8.3 (для более ранних версий нужен модуль TSearch). Вот хорошее учебное сообщение в блоге: Полнотекстовый поиск в Django с PostgreSQL и tsearch2
Он не передает null
в качестве метода - он передает его как " целевое выражение ", то есть то, для чего он вызывает метод. Это значение равно null, потому что OfType
является статическим методом, поэтому ему не нужна цель.
Смысл вызова MakeGenericMethod
заключается в том, что GetCurrentMethod ()
возвращает открытую версию, то есть OfType <>
вместо OfType
.
Queryable.OfType
сам по себе не означает, что содержит любая логика для пропуска возврата каких-либо значений. Это зависит от поставщика LINQ. Точка Запрашиваемая. OfType
предназначен для построения дерева выражений для включения вызова OfType
, чтобы, когда провайдер LINQ в конечном итоге должен был преобразовать его в свой собственный формат (например, SQL), он знал, что OfType Был вызван
.
Так работает Queryable
- в основном он позволяет провайдеру видеть все выражение запроса как дерево выражений. Это все, что он должен делать - когда провайдера просят преобразовать это в реальный код, это , где происходит волшебство.
Queryable
не может выполнять эту работу сам - у него нет представление о том, какое хранилище данных представляет поставщик. Как он мог придумать семантику OfType
, не зная, было ли хранилище данных SQL, LDAP или что-то еще? Я согласен, что на то, чтобы развлечься, нужно время :)