Asp.net CRM插件-Linq结果中缺少属性
在使用MSCRM 2011的插件时,我遇到了一些奇怪的行为。Asp.net CRM插件-Linq结果中缺少属性,asp.net,linq-to-entities,dynamics-crm-2011,Asp.net,Linq To Entities,Dynamics Crm 2011,在使用MSCRM 2011的插件时,我遇到了一些奇怪的行为。 下面的代码是在产品实体的创建和更新操作上注册的插件的一部分。 每个产品都有两个与其相关的任务(定义为活动实体),因此我希望产品的开放任务 var tasks = from t in orgContext.CreateQuery("fvm_producttask") where (t.GetAttributeValue<int>("statuscode") != 2 &
下面的代码是在产品实体的创建和更新操作上注册的插件的一部分。 每个产品都有两个与其相关的任务(定义为活动实体),因此我希望产品的开放任务
var tasks = from t
in orgContext.CreateQuery("fvm_producttask")
where (t.GetAttributeValue<int>("statuscode") != 2 && t.GetAttributeValue<int>("statuscode") != 3)
where t.GetAttributeValue<EntityReference>("fvm_regardingproduct").Id == product.Id
select t;
String xx = "";
foreach (String x in tasks.First().Attributes.Keys) {
xx += x + "\r\n";
}
throw new InvalidPluginExecutionException(xx);
使用CRM SDK时,它将只返回具有值的属性。我猜您的第一个任务除了Subject和ActivityId之外,所有值都为null。可能是您引用的实体已锁定字段 您是否在程序流程的早期执行任何操作 可能尝试在CreateQuery之前释放()上下文。。(或者,如果相关,将前面的上下文初始化包装在using块中) 嗯
Bob您是否可以包含与fvm\u相关产品相关的示例任务中的数据?我见过这样的场景:当值为null时,attributes集合中根本不存在键。一般来说,我更喜欢使用强类型、生成的代理类型,而不是属性集合。你是否有任何字段级安全性?@Daryl没有。我做了一些调试,发现插件执行的产品的每个任务都只返回2个属性,其他产品的任务似乎返回所有属性。插件是否可能在执行过程中锁定了一些字段,这就是我无法获取所有属性的原因?@Vosje在插件运行之前任务是否存在?我将打开CRM跟踪,并验证生成的SQL语句是否正确。我确实使用指定的ID在数据库中查找了活动,并在其中找到了我想要的值,因此它们不为null。他似乎在检索它们时遇到了问题。谢谢,这解决了问题。我在插件中全局声明了OrganizationServiceContext,并在执行插件时初始化了它一次。通过在每个使用它的函数中本地声明它,问题就解决了。谢谢,这也解决了我的问题。我重新实例化了ServiceContext对象。非常感谢!我没有任何锁定字段。这个问题一直是我的死敌,你的诡计效果很好。我的问题是——为什么会发生这种情况?你是怎么想出这个解决办法的?我在哪里可以了解更多关于内部工作的信息使用块是包装所有LINQ查询的最佳实践吗?@Eccountable非常欢迎,使用块只是围绕在finally子句中调用Dispose()的try finally块的语法糖衣,所以尽你所能:)
OwnerId FA7AF161-D666-E111-8537-001E4F1285B0
OwningUser FA7AF161-D666-E111-8537-001E4F1285B0
OwningTeam NULL
OwningBusinessUnit 168D9521-434E-E111-99C9-001E4F1285B0
ActualEnd NULL
VersionNumber 0x00000000002D40BD
ActivityId 655E63A1-84B9-E311-A79F-005056A56527
IsBilled 0
CreatedBy FA7AF161-D666-E111-8537-001E4F1285B0
Description Product Dimensions Required
ModifiedOn 2014-04-01 14:07:11.000
ServiceId NULL
ActivityTypeCode 10134
StateCode 0
ScheduledEnd 2014-04-04 10:01:45.000
ScheduledDurationMinutes 4320
ActualDurationMinutes NULL
StatusCode 1
ActualStart NULL
CreatedOn 2014-04-01 10:01:45.000
PriorityCode 1
RegardingObjectId NULL
Subject Product Requires Attention
IsWorkflowCreated 0
ScheduledStart 2014-04-01 10:01:45.000
ModifiedBy FA7AF161-D666-E111-8537-001E4F1285B0
TimeZoneRuleVersionNumber 0
UTCConversionTimeZoneCode NULL
InstanceTypeCode 0
SeriesId NULL
IsRegularActivity 1
ModifiedOnBehalfBy FA7AF161-D666-E111-8537-001E4F1285B0
CreatedOnBehalfBy NULL
TransactionCurrencyId NULL
ExchangeRate NULL
LeftVoiceMail 0
IsMapiPrivate 0
RegardingObjectTypeCode NULL
RegardingObjectIdName NULL
ImportSequenceNumber NULL
OverriddenCreatedOn NULL
fvm_RegardingProduct 207592F0-E9B8-E311-A79F-005056A56527
fvm_Category 1