Linq2SQl нетерпеливая загрузка с несколькими DataLoadOptions

Попробуйте: fancyAlert.TNSFancyAlert.showSuccess().

[РЕДАКТИРОВАТЬ] Это действительно должно сработать, поскольку оно отражает решение, данное в заявке , связанной с Нарендрой Монгией в вашем вопросе. Нужно иметь в виду, что это Обещание, поэтому давайте добавим туда блок catch(), чтобы выявить ошибки.

const fancyAlert = require("nativescript-fancyalert");

// ...

fancyAlert.TNSFancyAlert.showSuccess(
    "Success!",
    "You are logged in.",
    "Success!"
)
.then((resolution) => {
    console.log("[TNSFancyAlert] showSuccess() succeeded.", resolution);    
})
.catch((error) => {
    console.error("[TNSFancyAlert] showSuccess() failed.", error);
});

Вы также можете обнаружить, что просто вызываете его из неправильного места в вашем коде.

12
задан Liang Wu 13 March 2009 в 22:57
поделиться

3 ответа

Нет, Вы не сделали ничего плохого, Linq2SQL обрабатывает все в пакетном режиме в единственной транзакции, но мог бы выполнить неограниченное количество запросов для необходимого результата. DataLoadOptions обычно только используется когда DataContext не доступно для всего контекста получающегося использования. Если можно сохранить DataContext живой во время выполнения, лучше полагаться на задержанное выполнение (который является значением по умолчанию).

3
ответ дан 2 December 2019 в 07:04
поделиться

Согласно документам:

Когда Вы запрашиваете для объекта, Вы на самом деле получаете только объект, который Вы запросили. Связанные объекты автоматически не выбираются одновременно.

Класс DataLoadOptions предоставляет два метода для достижения непосредственной загрузки указанных связанных данных. Метод LoadWith допускает непосредственную загрузку данных, связанных с основной целью. Метод AssociateWith допускает фильтрацию связанных объектов.

Наличие нескольких sql операторов не удивляет меня. Я думаю, что различием здесь являются все операторы, просто загружаются впереди вместо ленивой загрузки их по требованию.

2
ответ дан 2 December 2019 в 07:04
поделиться

Я тоже затронул эту проблему в некотором коде, и после долгих экспериментов и поиска в Google кажется, что LINQ может соединяться только через одно отношение «один ко многим» из каждой таблицы: если вы попытаетесь указать более одного, чтобы предварительно загрузить его, просто (случайно?) выбирает, какой из них предварительно load и какие другие оставить отложенными (просто игнорируя подсказки LoadWith)

Другие люди тоже разместили это, например

http://codebetter.com/blogs/david.hayden/archive/2007/08/06 /linq-to-sql-query-tuning-appears-to-break-down-in-more-advanced-scenarios.aspx

17
ответ дан 2 December 2019 в 07:04
поделиться
Другие вопросы по тегам:

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