powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ Не вытягивает ссылочные сущности.
25 сообщений из 61, страница 1 из 3
LINQ Не вытягивает ссылочные сущности.
    #39667741
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так... Обнаружил свое не понимание в работе с EF сегодня.
Есть, например, сущности Employees -> Depatrments. И запрос
Код: c#
1.
var emp = await db.Employee.Where(p => p.Id == Id).SingleOrDefaultAsync(); 


пытаюсь добраться до имени отдела.
Код: c#
1.
String name = emp.AssignedDepartment.DepartmentName;


облом AssignedDepartment NULL
приходится делать инклюд
Код: c#
1.
var emp = await db.Employee.Where(p => p.Id == Id).Include(p => p.AssignedDepartment).SingleOrDefaultAsync(); 


Через Find добраться вообще не получается, все ссылочные сущности NULL.
Код: c#
1.
var emp = await db.Employee.FindAsync(Id);


Я грешным делом думал, что оно тянется автоматически. Ан нет.
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667754
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот в этом примере никаких инклюдов писать не надо, все вытягиваются автоматически
Код: c#
1.
2.
3.
totalPosition = db.AssessmentFormDetails
.Where(p => (p.AssignedAssessmentFormId == Id && p.AssignedCompetencyCategoryDetail.AssignedCompetencyCategory.AssignedCompetencyId == 1))
.Average(o => o.AssignedRatingScale.Rate);


Это потому что их упомянули в Where or Average???
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667762
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

virtual
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667773
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttRelic Hunter,

virtualВсе мемберы virtual. А вот к AssessmentForm без инклюда не удается. Что не так?
Код: 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.
    public class AssessmentFormDetail
    {
        public int Id { get; set; }
        [Index("AK_AssessmentFormDetail", 1, IsUnique = true)]
        [ForeignKey("AssignedAssessmentFormId")]
        public virtual AssessmentForm AssignedAssessmentForm { get; set; }
        [Required]
        public virtual int AssignedAssessmentFormId { get; set; }
        [Index("AK_AssessmentFormDetail", 2, IsUnique = true)]
        [ForeignKey("AssignedCompetencyCategoryDetailId")]
        public virtual CompetencyCategoryDetail AssignedCompetencyCategoryDetail { get; set; }
        [Required]
        public virtual int AssignedCompetencyCategoryDetailId { get; set; }
        //[Index("AK_AssessmentFormDetail", 3, IsUnique = true)]
        [ForeignKey("AssignedRatingScaleId")]
        public virtual RatingScale AssignedRatingScale { get; set; }
        public virtual int? AssignedRatingScaleId { get; set; }
        public DateTime CreationDate { get; set; }
        [MaxLength(200)]
        public string CreatedBy { get; set; }
        public AssessmentFormDetail()
        {
            CreationDate = DateTime.Now;
            CreatedBy = System.Threading.Thread.CurrentPrincipal.Identity.Name;
        }
    }

...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667781
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

Зачем тут кругом асинхронность если результат нужен сразу?
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667784
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Petro123Relic Hunter,

Зачем тут кругом асинхронность если результат нужен сразу?Присоединяюсь с вопросом )))
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667787
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Relic Hunter,

Зачем тут кругом асинхронность если результат нужен сразу?

Кажись ты не понимаешь что такое асинхронность.
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667789
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

Пока сложно сказать, может маппинг, может трекинг отключён, может ещё что. Какой EF?
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667795
Идеальный П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttRelic Hunter,

Пока сложно сказать, может маппинг, может трекинг отключён, может ещё что. Какой EF?
Код: c#
1.
 <package id="EntityFramework" version="6.1.1" targetFramework="net451" />


Как-то не совсем хорошо получается, нарываться на эти NULL в рантайме. За что боролись? Думалось EF это - полностью контролируемый дизайн-тайм. Да и не всегда вспомнишь про эти иклюды, а код компилируется на ура ))
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667797
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ппц. Если ссылочные сущности уже в кеше ЕФ (1), то они вытаскиваются потом уже и без инклюда, и find их вытягивает, а если нет (2), то получаем NULL.

(1)работает
Код: c#
1.
2.
3.
4.
5.
            var formDetails = await db.AssessmentFormDetails.Where(p => p.Id == Id).Include(p => p.AssignedRatingScale).Include(p => p.AssignedCompetencyCategoryDetail).SingleOrDefaultAsync();

            var formDetails2 = db.AssessmentFormDetails.Where(p => p.Id == Id).SingleOrDefault();

            var card =  db.AssessmentFormDetails.Find(Id);


(2)не работает, вылетает по null, если обрашаться к ссылочным сущностям

Код: c#
1.
2.
3.
4.
5.
            ///var formDetails = await db.AssessmentFormDetails.Where(p => p.Id == Id).Include(p => p.AssignedRatingScale).Include(p => p.AssignedCompetencyCategoryDetail).SingleOrDefaultAsync();

            var formDetails2 = db.AssessmentFormDetails.Where(p => p.Id == Id).SingleOrDefault();

            var card =  db.AssessmentFormDetails.Find(Id);


картонный домик рассыпается на глазах.
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667816
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttPetro123Relic Hunter,

Зачем тут кругом асинхронность если результат нужен сразу?

Кажись ты не понимаешь что такое асинхронность.
Может я че и не понял....проблемы автора).
Ленивая подгрузка работает таким образом:
Код: c#
1.
Контекст.table1.table2.table3

.
И таким:
Код: c#
1.
2.
3.
foreach table1 context.table1{
    table1.table2 // пойшел доп запрос в другую таблу
}
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667819
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если автор просто про ссылки в классе по композиции ООП....без указания отношений один ко многим и т.д.
То imho подгрузки автоматом быть и не должно.
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667845
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

Проверь на всякий случай, чему равна
Код: c#
1.
db.Configuration.LazyLoadingEnabled

должна быть true , чтобы код работал как ты ожидаешь
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667852
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идеальный П.hVosttRelic Hunter,

Пока сложно сказать, может маппинг, может трекинг отключён, может ещё что. Какой EF?
Код: c#
1.
 <package id="EntityFramework" version="6.1.1" targetFramework="net451" />



Как-то не совсем хорошо получается, нарываться на эти NULL в рантайме. За что боролись? Думалось EF это - полностью контролируемый дизайн-тайм. Да и не всегда вспомнишь про эти иклюды, а код компилируется на ура ))

Покажи отношения в сущностям.
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667855
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
refregдолжна быть true по умолчанию вкл. Но конечно пусть проверит.
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667862
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123refregдолжна быть true по умолчанию вкл. Но конечно пусть проверит.Когда же ты заткнешься? Выпей чё-нить от поноса...
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667868
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
refreg,

касторку
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667882
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
refreg,
Не пиши банальности.
Параметр по умолчанию включен.
Разумеется ты разозлился).
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667883
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

Аргентина - Франция пока 1:1

проверь на всякий случай, чему равно:
Код: c#
1.
db.Configuration.LazyLoadingEnabled


должно быть true , чтобы код работал так как ты ожидаешь
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667909
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123refreg,
Не пиши банальности.
Параметр по умолчанию включен.
Разумеется ты разозлился).Банальности и глупости на этом форуме пишет только один человек...
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667914
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunterкартонный домик рассыпается на глазах.

Может, карточный? :)

Find работает из кеша первого уровня, да. Null, если отключена ленивая загрузка.
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667920
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
refregБанальности и глупости на этом форуме пишет только один человек...
Или по теме пиши, или полку дома прибей джуниор.
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667934
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123refregБанальности и глупости на этом форуме пишет только один человек...
Или по теме пиши, или полку дома прибей джуниор.Будешь модератором, будешь указывать что писать... Следи за собой...
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667951
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
refreg,
Ну дак я ставлю на то что чел просто связи не там и не те расставил.
А ты с параметром ошибся, да еще и нервный.
Это факты.
...
Рейтинг: 0 / 0
LINQ Не вытягивает ссылочные сущности.
    #39667953
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

где же это факты? пока что только догадки
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 1 из 3
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ Не вытягивает ссылочные сущности.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]