1

当我经过一个

Func<EntityType,bool> sourceFunc = a => a.Name == "name";

到:

var crmEntities = m_xrmServiceContext.CreateQuery<EntityType>().Where(sourceFunc);

然后打电话

int i = crmEntities.ToList().Count;

它将 EntityType 的所有实体放入 xrmServiceContext 附加实体中,即 488 个实体!

但是,如果我使用原始 lambda 表达式而不是 Func<> ,则如下所示:

var crmEntities = m_xrmServiceContext.CreateQuery<EntityType>().Where(a => a.Name = "name");

然后打电话

int i = crmEntities.ToList().Count;

它将仅返回附加实体中的 1 个实体。

我想使用 Func<> 但我不认为我希望在 xrm 服务上下文中的附加实体中拥有所有这些实体。知道为什么要把它们都放在那里吗?

4

1 回答 1

4

有趣..解决方案是通过

Expression<Func<EntityType,bool>>

代替

Func<EntityType,bool>

它只向附加实体返回 1 个实体 :)

于 2012-08-29T09:46:39.197 回答