Почему навигация по моделям не работает с объектом Self-tracking? - PullRequest
0 голосов
/ 10 марта 2012

Я сгенерировал модель данных (Entity Framework) с внешними ключами.Это была модель данных, сгенерированная из базы данных.После этого все заработало, навигация и т. Д. Далее я сгенерировал самообследованную сущность.К сожалению, я потерял функцию навигации.Например, этот запрос сейчас не работает:

    public int GetUserTagsNumber( SessionContainer inputData ) {
        return db.User_t.Single(x => x.pid == inputData.Pid).Tag_t.Count();
    }

Я новичок в самообследовании и wcf.Итак, мои вопросы:

Почему навигация не работает и на стороне обслуживания?

Если все в порядке, то для чего видны свойства навигации?

1 Ответ

2 голосов
/ 10 марта 2012

Ваша «навигация по моделям» называется отложенной загрузкой, а объекты с самопроверкой не поддерживают отложенную загрузку в зависимости от проекта, поэтому вместо этого вы должны использовать готовую загрузку:

db.User_t.Include("Tag_t").Single(x => x.pid == inputData.Pid).Tag_t.Count();

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

db.Tag_t.Where(/* here put condition to find tags used by your user */).Count();
...