无法从IQueryable获得结果

时间:2010-06-14 21:56:59

标签: linq linq-to-entities

我在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 :(得分:0)

我想这是因为你的LINQ语句没有返回任何值,所以entities为空。

您的第二个示例有效,因为您没有尝试过滤结果。

您是否有一些实体将DESCRIPTION设置为字符串(包括大小写)?