2010-06-14 2 views
0

У меня есть следующий код в Linq к Entity:не удается получить результаты от IQueryable

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

Затем политика таблицы, имеет некоторые зависимости для таблицы с именем 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); 

} 

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

Спасибо, С наилучшими пожеланиями.

ответ

0

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

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

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

Смежные вопросы