Не могу получить результаты от IQueryable - PullRequest
0 голосов
/ 15 июня 2010

У меня есть следующий код в Linq to Entity:

var policy= from pol in conn.Policy
            where pol.Product.DESCRIPTION=="someProduct"
            SELECT pol;

Тогда у таблицы Policy есть некоторые зависимости для таблицы с именем Entity. Если я сделаю это:

foreach(Policy p in policy){
    if(!p.Entity.IsLoaded) p.Entity.Load();
    IEnumerable<Entity> entities= from ent in p.Entity
                                  Where ent.EntityType.DESCRIPTION=="SomeEntityType"
                                  select ent;
    Console.Writeline(entities.ElementAt(0).NAME);
}

Там написано: «Объект не установлен как экземпляр», но если я это сделаю:

foreach(Policy p in policy){
    if(!p.Entity.IsLoaded) p.Entity.Load();

    foreach(Entity et in p.Entity)Console.Write(et.NAME);

}

Это работает! Может кто-нибудь сказать мне, почему?

Спасибо, С уважением.

1 Ответ

0 голосов
/ 15 июня 2010

Я бы сказал, что это потому, что ваш оператор LINQ не возвращает никаких значений, поэтому entities равно нулю.

Ваш второй пример работает, потому что вы не пытаетесь отфильтровать результаты.

Есть ли у вас сущности, для которых DESCRIPTION установлен точно в строку (включая регистр)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...