Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net CRM插件-Linq结果中缺少属性_Asp.net_Linq To Entities_Dynamics Crm 2011 - Fatal编程技术网

Asp.net CRM插件-Linq结果中缺少属性

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 &

在使用MSCRM 2011的插件时,我遇到了一些奇怪的行为。
下面的代码是在产品实体的创建和更新操作上注册的插件的一部分。 每个产品都有两个与其相关的任务(定义为活动实体),因此我希望产品的开放任务

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