Что случилось с Linq к SQL?

Не вкладывайте компонент Route в другой компонент Route, вместо этого добавляйте вложенный элемент Route в компонент, в который вы хотите его визуализировать.
Например:

 class App extends Component {
      render() {
        return (
          
// using path="/" will throw an error {this.props.children}
); } } function Root({match}) { return (

Root

  • Home
); }

Для получения дополнительной информации о маршрутах вложений, вы должны пройти через этот Источник

9
задан John Sheehan 6 October 2008 в 04:27
поделиться

11 ответов

Это не очень адаптируемо к изменениям в схеме базы данных. Необходимо восстановить dbml слой и повторно создать контексты данных.

Как любой ORM (я не вхожу в дебаты относительно того, является ли это ORM или не), действительно необходимо знать, что SQL сгенерирован, и как это будет влиять вызовы.

Вставки не обрабатываются в пакетном режиме, так может быть высокая стоимость в производительности.

Это - sunsetted в пользу Платформы Объекта

Несмотря на факт это использует модель поставщика, которая позволит поставщикам быть созданными для других платформ DBMS, только SQL Server поддерживается.

[ОТРЕДАКТИРУЙТЕ AugustLights - По моему опыту:] Ленивая загрузка может взять немного взламывания для получения работы.

Однако я думаю это, это очень удобно, если используется правильно

16
ответ дан 4 December 2019 в 06:27
поделиться

Для проекта, который должен использовать базы данных кроме SQL Server:

1) Вы привязываетесь к использованию SQL Server

Для проекта со сложными отношениями объекта и/или отношениями, которые изменяются постепенно со временем:

2) Вы привязываетесь к 1 к 1 отображению таблиц к классам

Для проекта, который должен использовать 1.x версии.NET

3) Не будет работать с.NET 1.x

9
ответ дан 4 December 2019 в 06:27
поделиться
  • Нет никакого пути к mix-n-match ленивой загрузке / нетерпеливая загрузка на datacontext.
  • Истинное незнание постоянства является очень трудным.
  • Ограничены отображающиеся опции. Например, нет никаких many-many отношений.
  • Пересинхронизация отображения с изменениями схемы является болезненной.

Несмотря на все вышеупомянутые я думаю, что linq-to-sql является отличным выбором для многих проектов.

4
ответ дан 4 December 2019 в 06:27
поделиться

Трудно дразнить в то время как поблочное тестирование из-за отсутствия интерфейса на System.Data.Linq.DataContext класс. Вот возможный подход: Насмешка LINQ к SQL DataContext.

3
ответ дан 4 December 2019 в 06:27
поделиться

потому что Вы не используете 3.5... то, что действительный ответ?!?!?

3
ответ дан 4 December 2019 в 06:27
поделиться

Ну, я разработал некоторые приложения с помощью LINQ для SQL. Одна из основных проблем, которые я нахожу, должна разделить Ваше приложение на уровни. В LINQ к SQL классы объекта связываются очень тесно с кодом доступа к данным. Кроме того, существуют некоторые проблемы с DataContext, что означает, что можно использовать объект DataContext получить объект, но Вы не можете передать объект (объект) другому DataContext (по крайней мере, не легко).

LINQ к SQL будет полезен, если Вы не будете заботиться о разделении на уровни Вашего приложения правильно и также если все, что Вы хотели, должно создать приложение быстрым способом, также знают как Быстрая разработка приложений.

1
ответ дан 4 December 2019 в 06:27
поделиться

Единственная вещь, которую я маркировал бы как технический "showstopper", состоит в том, если Вы хотите использовать другой RDBMSes, чем SQL Server. (хотя это может работаться вокруг - см. блог Matt Warren http://blogs.msdn.com/mattwar/),

Помимо этого, существуют некоторые за и против, уже перечисленные в предыдущих ответах на Ваш вопрос. Однако все отрицательные стороны, упомянутые до сих пор, имеют обходные решения, таким образом, они не действительно showstoppers.

Нетехнический [потенциал] showstopper является риском, что MSFT откажется от него в пользу EF... Больше на этом здесь: http://oakleafblog.blogspot.com/2008/05/is-adonet-team-abandoning-linq-to-sql.html

Хотя (по-моему) текущее состояние EF является причиной достаточно, чтобы они продолжили работу над L2S. Поэтому давайте надеяться, что они делают...

1
ответ дан 4 December 2019 в 06:27
поделиться

Большое преимущество для LINQ-SQL прибывает из, предположительно, способности создать запросы данных прямо в Вашем коде - позади на основе queryable/enumerable объектов данных со строгим контролем типов от Вашего dbml (который играет роль очень ограниченного DAL). Так последствие, как был уже упомянут, то, что оно поощряет Вас несколько к проигрыванию вне сильно определенных и разделенных слоев или уровней к Вашему приложению.
Для противостояния той точке это должно означать, что необходимо смочь устранить больше всего или вся любая бизнес-логика, которую Вы писали в хранимые процедуры на базе данных, таким образом по крайней мере, только необходимо перейти к коду, который имеет дело с данными для изменения non-schema-impacting бизнес-правил... Однако это ломается немного, когда Вы понимаете, насколько сложный это может быть должно записать запрос с внешним объединением с агрегатами с группировкой, по крайней мере, при первом приближении к нему. Таким образом, Вы испытаете желание записать sprocs в SQL, Вы знаете, что это так просто и хорошо в выполнении тех вещей, а не проведите дополнительное время, пытаясь выяснить синтаксис LINQ, чтобы сделать то же самое, когда это просто собирается преобразовать его в ужасный код SQL так или иначе...
Это сказанное, я действительно люблю LINQ, и мое уважение для него значительно увеличилось, когда я начал игнорировать этот "синтаксис запроса, легче считать" чувство, я видел плавание вокруг и переключился на синтаксис метода. Никогда не оглядывался назад.

1
ответ дан 4 December 2019 в 06:27
поделиться

Истинный ORM должен отделить дизайн ваших бизнес-структур от вашего постоянного уровня. Таким образом, вы можете выполнить рефакторинг любого из них по отдельности, и вам нужно только поддерживать соответствие между ними. Это уменьшает объем кода логики приложения, который необходимо поддерживать для изменений в базе данных.

Чтобы реализовать такой подход, основанный на постоянстве, с Linq-to-SQL, вам придется использовать его сгенерированные классы в DTO и поддерживать логику отображения между вашими DTO и вашими сущностями.

Есть гораздо лучшие ORM для использования этого подхода (например, NHibernate), которые значительно уменьшают потребность в DTO.

1
ответ дан 4 December 2019 в 06:27
поделиться

Это, кажется, не имеет поддержки значений по умолчанию на столбцах DB.

0
ответ дан 4 December 2019 в 06:27
поделиться

Этот вопрос задали однажды здесь. Но в сущности LINQ к SQL генерирует субоптимальные планы выполнения в Вашей базе данных. Для каждой различной длины параметра Вы ищете, это вызовет создание другого плана выполнения. Это в конечном счете забьет память в Вашей базе данных, которая привыкла к планам выполнения кэша, и Вы начнете истекать более старые запросы, которые должны будут быть перекомпилированы, когда они подойдут снова.

Как я упомянул в вопросе, с которым я связался, это - вопрос того, что Вы пытаетесь выполнить. Если Вы желаете к скорости исполнения сделок для скорости разработки, LINQ к SQL мог бы быть хорошим выбором. Если Вы обеспокоены скоростью выполнения, существуют другие ORMs/DALs/solutions доступные, которые могут занять больше времени для работы с, но предоставят Вам соответствование требованиям завтрашнего дня против изменений схемы и лучших решений для выполнения за счет дополнительной разработки наверху.

-1
ответ дан 4 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: