我在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);
}
有效! 谁能告诉我为什么?
谢谢,祝贺。
答案 0 :(得分:0)
我想这是因为你的LINQ语句没有返回任何值,所以entities
为空。
您的第二个示例有效,因为您没有尝试过滤结果。
您是否有一些实体将DESCRIPTION
设置为字符串(包括大小写)?