|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Petro123А ты с параметром ошибсяВо-первых, я не утверждал - что это причина, я так и написал "Проверь на всякий случай". Во-вторых: Petro123refregдолжна быть true по умолчанию вкл. Но конечно пусть проверит.Что? Значение по-умолчанию изменять нельзя? Это значение не мог изменить другой разработчик для своих нужд, и забыть вернуть? (если один инстанс) Это значение нельзя задать в конструкторе? От тебя одно словоблудие... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2018, 11:27 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Petro123Ну дак я ставлю на то что чел просто связи не там и не те расставил.Это что спорт? Учись мыслить логически (а потом писать), явная загрузка работает. И,Petro123Это факты ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2018, 11:54 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
блин. Зайдёшь на форум в надежде что тут про IT разговор, а тут опять одно и то же. refregВо-первых, я не утверждал - что это причина, я так и написал "Проверь на всякий случай". а потом добавил)) 21533017 Выводы делайте сами. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2018, 13:43 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Petro123блин. Зайдёшь на форум в надежде что тут про IT разговор, а тут опять одно и то же.Аналогично... А чё ты так разнервничался? Выпей таблеточку... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2018, 15:07 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
тыкс, продолжаем изумляться... Сделал тестовый пример. Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
В варианте А, как и предполагалось назначился тип StaffCompetecyInventory.Models.AssessmentFormDetail из модели и подчиненные сущности не вытянулись, NullReference. А в варианте Б произошло что-то странное. Переменная bbb привелась к какому-то странному типу System.Data.Entity.DynamicProxies.AssessmentFormDetail_0E353859AB9C37A6938C598B32653FA41CF490D703B2E95A829BBC004DD83605 и все подчиненые сущности были уже проинициализированы. Разница между А и Б, А - передали в метод FindAsync переменную Id, в Б - передали число, равное переменной Id, 3690. Кното-то сможет ппрояснить, что там происходит??? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 18:31 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Relic HunterКното-то сможет ппрояснить, что там происходит???дык уже писали и даже ставки делали)))на неверную Модель и маппинг. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 18:38 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Почему в "А" вытягивается экземпляр модели, а в "Б" dynamic proxy? Лениваая загрузка включена, вся конфигурация по умолчанию. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 18:56 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Relic HunterПочему в "А" вытягивается экземпляр модели, а в "Б" dynamic proxy? Лениваая загрузка включена, вся конфигурация по умолчанию.были 4,5 догадок в топике. Но ты ответы не читаешь. Ну если забыть всё что выше писали, то тебе тяжело тест из двух классов сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 19:09 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Petro123Но ты ответы не читаешь. +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 19:12 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Relic HunterПочему в "А" вытягивается экземпляр модели, а в "Б" dynamic proxy? Лениваая загрузка включена, вся конфигурация по умолчанию. Делай тестовый проект, выкладывай. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 21:23 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Там все связано с обновлением сущности. Перед тем как вызвать Find() происходит обновление Код: c# 1. 2.
и Find() вытаскивает сущность assessmentFormDetail из кеша без запроса к базе, в таком-же виде, как мы ее туда поместили: AssignedAssessmentForm, AssignedCompetencyCategoryDetail, AssignedRatingScale - не инициализированы. Просто обновили Id вчешних ключей. Ежели не обновлять сущность перед запросом Find(), то к базе пролезет запрос и Find() вернет прокси со всеми инициализироваными сущностями, т.е. ленивая загрузка сработает. Вот чем собака порылась. Так-ли оно должно быть а не знаю. ЗЫ Вчера прочитал бэст практис один и чувак там высказал не плохую мысль: не использовать никакие ленивые загрузки, ни changetracking-и и доставать все вручную в LINK запросе, перечислив ссылочные сущности и их поля явно, чтобы не тащить лишнего и не нарываться внезапно на NullReferense. И я больше склонен с ним согласиться, чем нет. А так со схемой модели все в порядке, просто есть нюансы ;) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 23:17 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Relic Hunterиз кеша без запроса к базе, await db.SaveChangesAsync(); - а это типа query free? Relic Hunterи не нарываться внезапно на NullReferense. Трешак конечно. И этот мусор (я про код) идёт в продакшн? Пиши лучше чистые select-ы через ODBC, тогда риск Relic Hunterнарываться внезапно на NullReferense сведешь к нулю. P.S. Дай мне надежду, скажи, что этот код больше никто не видит. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 00:27 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Relic HunterВчера прочитал бэст практис один и чувак там высказал не плохую мысль: не использовать никакие ленивые загрузки, ни changetracking-и и доставать все вручную в LINK запросе, перечислив ссылочные сущности и их поля явно, чтобы не тащить лишнего и не нарываться внезапно на NullReferense. И я больше склонен с ним согласиться, чем нет. А так со схемой модели все в порядке, просто есть нюансы ;) Да етить его налево... Сколька ж можно-та? Да сколько!? Entity в его чистом виде, с лейзи, без лейзи -- вообще наплювать, прокси-не-прокси. Только для одного. Для одного единственного случая. Для изменения. Всё. Мать ево за ногу. Остальные запросы на чтение, вывод, экспорт, почитать, посмотерть -- исключительно через проекции. Но нет же. Думают, а ничё такой микроскоп. Тяжёленький. Можно и гвозди позабивать. Млээээ...... Ээээаааа.... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 01:09 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Relic Hunter, Если вкратце. Хочешь отредактировать -- Find. Модификация. SaveChanges. Хочешь какую-то информацию просто прочитать и вывести -- проекции. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 01:11 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Relic Hunterпросто есть нюансы ;) Нет никаких ньюансов, нужно понимание что и для чего сделано. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 01:11 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Relic Hunterи Find() вытаскивает сущность assessmentFormDetail из кеша без запроса к базе, в таком-же виде, как мы ее туда поместили Да. Поэтому 1. кеши 1го уровня должны быть короткоживующие, т.е. контекст должен жить ровно одну бизнес-операцию 2. читать данные из Find -- НЕЛЬЗЯ, только для изменения 3. лейзи для чтения -- НЕЛЬЗЯ, только для изменения ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 01:14 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
hVostt, Што такое "проекции" по-вашему? Это? https://metanit.com/sharp/entityframework/4.2.php Ну дак там ситуация, такая-же, либо в Select явно прописать все, что нужно вытянуть, либо Includes(). Без это связанные сущности не проинициализируются. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 02:29 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Relic Hunter, нет. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
никаких Include! никаких "связных сущностей", которые проинициализируются, для чтения данных из базы только проекции. даже если подмывает, ну вот здесь-то можно и сущность вытянуть, чо такого.. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 02:49 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
hVostt, Ок, на твоем примере мне нужно по Id вытянуть пипла (одного, никаких то лист), а также имя города в котором он живет (св. сущность города один-ко-многим). Каг? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 03:54 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
hVostt, В общем идея понятна. В первом посте ты употребил слово "virtual", намекая на ленивую загрузку через навигационные свойства (не так-ли?), а в результате, когда как оказалось оно так нифига не работает, ты написал про проекции и ручную выборку, как и что делать. Наверное так и нужно делать, что я и писал постом раньше. Но это никак не отвечает на вопрос ТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 04:08 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
hVostt, Можно без проекции. Ленивое свойство инициализируется в момент геттера к нему. Т.е. в момент запроса. Он пример то сделал или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 07:33 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Аффтар! Пример с одним полем Без Мусора будет или плакать 4-ю страницу будем? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 07:35 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
hVosttкеши 1го уровня должны быть короткоживующие, т.е. контекст должен жить ровно одну бизнес-операцию +1 ТопикСтартерdb.Entry(assessmentFormDetail).State = EntityState.Modified; Самому статус менять не Нужно. Иначе нафига тогда EF? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 07:45 |
|
LINQ Не вытягивает ссылочные сущности.
|
|||
---|---|---|---|
#18+
Relic HunterhVostt, Ок, на твоем примере мне нужно по Id вытянуть пипла (одного, никаких то лист), а также имя города в котором он живет (св. сущность города один-ко-многим). Каг? Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 07:55 |
|
|
start [/forum/topic.php?fid=17&msg=39670405&tid=1349183]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
153ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 240ms |
total: | 493ms |
0 / 0 |