[linq2db] Регрессия на 1.7.6 после 1.0.7.4 или порядок выражений в FROM
От: Товарищ  
Дата: 09.03.17 10:04
Оценка:
Обновился и получил "The multi-part identifier "p.billing_plan_id" could not be bound." на запросе
var query =
                from feeRow in db.t_ws_billing_plan_instance_fee
                join bp     in BillingPlanInstance.Question(db) on feeRow.billing_plan_instance_id equals bp.Id
                join f      in Fee.Question(db) on feeRow.fee_id equals f.Id
                from pf in
                    BillingPlanFee
                    .Question(db)
                    .Where(_ => _.Fee.Id == feeRow.fee_id && _.BillingPlan.Id == bp.BillingPlan.Id)
                    .Take(1)
                    .DefaultIfEmpty()
        select new BillingPlanInstanceFee {
                    Id = feeRow.id,
                    BillingPlanInstanceId = feeRow.billing_plan_instance_id,
                    BillingPlanInstance = bp,
                    Amount = feeRow.amt,
                    Fee = f,
                    Type = feeRow.fee_type,
                    FeeAmount = feeRow.fee_amt,
                    DownPaymentPercent = feeRow.fee_amt_downpmt_pct,
                    Behaviour = feeRow.fee_behaviour,
                    BillingPlanFee = pf
                };

Оказалось что в sql
            WHERE
                [fee].[id] = [feeRow].[fee_id] AND [p1].[billing_plan_id] = [p].[billing_plan_id]  --БАХ The multi-part identifier "p.billing_plan_id" could not be bound.
        ) [t5]
        INNER JOIN [dbo].[t_bd_billing_plan] [p] ON [i].[billing_plan_id] = [p].[billing_plan_id]

что и приводит к ошибке.

Как можно подсказать linq2db, что join bp in BillingPlanInstance.Question(db) on feeRow.billing_plan_instance_id equals bp.Id должен генериться первым?
Re: [linq2db] Регрессия на 1.7.6 после 1.0.7.4 или порядок выражений в FROM
От: ili Россия  
Дата: 09.03.17 13:25
Оценка:
Здравствуйте, Товарищ, Вы писали:


Т>Как можно подсказать linq2db, что join bp in BillingPlanInstance.Question(db) on feeRow.billing_plan_instance_id equals bp.Id должен генериться первым?


а раньше это запрос работал нормально?

Попробуй вырубить оптимизацию джоинов и проверить:

LinqToDB.Common.Configuration.Linq.OptimizeJoins = false
Re[2]: [linq2db] Регрессия на 1.7.6 после 1.0.7.4 или порядок выражений в FROM
От: ili Россия  
Дата: 09.03.17 13:28
Оценка:
Здравствуйте, ili, Вы писали:

ili>Здравствуйте, Товарищ, Вы писали:



Т>>Как можно подсказать linq2db, что join bp in BillingPlanInstance.Question(db) on feeRow.billing_plan_instance_id equals bp.Id должен генериться первым?



И в идеале бы ещё получить полный SQL запрос который генерится на текущей и на предыдущей версии...
Re[2]: [linq2db] Регрессия на 1.7.6 после 1.0.7.4 или порядок выражений в FROM
От: Товарищ  
Дата: 10.03.17 05:07
Оценка:
Здравствуйте, ili, Вы писали:


ili>а раньше это запрос работал нормально?

Так точно

ili>Попробуй вырубить оптимизацию джоинов и проверить:

Так выполняется без ошибки
Re[3]: [linq2db] Регрессия на 1.7.6 после 1.0.7.4 или порядок выражений в FROM
От: Товарищ  
Дата: 10.03.17 05:09
Оценка:
Здравствуйте, ili, Вы писали:

ili>Здравствуйте, ili, Вы писали:


ili>>Здравствуйте, Товарищ, Вы писали:



Т>>>Как можно подсказать linq2db, что join bp in BillingPlanInstance.Question(db) on feeRow.billing_plan_instance_id equals bp.Id должен генериться первым?



ili>И в идеале бы ещё получить полный SQL запрос который генерится на текущей и на предыдущей версии...


1.0.7.4
1.7.6
1.7.6 LinqToDB.Common.Configuration.Linq.OptimizeJoins = false
Re[3]: [linq2db] Регрессия на 1.7.6 после 1.0.7.4 или порядок выражений в FROM
От: ili Россия  
Дата: 10.03.17 12:18
Оценка:
Здравствуйте, Товарищ, Вы писали:

Т>Здравствуйте, ili, Вы писали:



ili>>а раньше это запрос работал нормально?

Т>Так точно

ili>>Попробуй вырубить оптимизацию джоинов и проверить:

Т>Так выполняется без ошибки


Плохо... будем править....
Re[3]: [linq2db] Регрессия на 1.7.6 после 1.0.7.4 или порядок выражений в FROM
От: ili Россия  
Дата: 10.03.17 12:29
Оценка: 6 (1)
Здравствуйте, Товарищ, Вы писали:

Т>Здравствуйте, ili, Вы писали:



ili>>а раньше это запрос работал нормально?

Т>Так точно

ili>>Попробуй вырубить оптимизацию джоинов и проверить:

Т>Так выполняется без ошибки


Завел иссью

Пока же оптимизацию джоинов придется отключить
Re[4]: [linq2db] Регрессия на 1.7.6 после 1.0.7.4 или порядок выражений в FROM
От: ili Россия  
Дата: 11.03.17 05:49
Оценка:
Здравствуйте, Товарищ, Вы писали:

Т>1.0.7.4

Т>1.7.6
Т>1.7.6 LinqToDB.Common.Configuration.Linq.OptimizeJoins = false



Можешь ещё объектную модель скинуть?
Re[5]: [linq2db] Регрессия на 1.7.6 после 1.0.7.4 или порядок выражений в FROM
От: Товарищ  
Дата: 11.03.17 06:39
Оценка:
Здравствуйте, ili, Вы писали:


ili>Можешь ещё объектную модель скинуть?


В смысле просто DB классы из проекта?
Re[6]: [linq2db] Регрессия на 1.7.6 после 1.0.7.4 или порядок выражений в FROM
От: ili Россия  
Дата: 13.03.17 04:55
Оценка:
Здравствуйте, Товарищ, Вы писали:

Т>В смысле просто DB классы из проекта?


Да, их самых
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.