CRM 2011:LINQ查询未执行

时间:2013-11-01 06:45:05

标签: c# sql linq dynamics-crm-2011

我实现了我的第一个LINQ查询来检查重复记录,同时用户添加了一条新记录,但它没有被解雇

我正在研究CRM2011并使用LINQ编写插件并使用插件注册工具注册

以下是我的代码

 if (context.Depth == 1)
        {
            if (context.InputParameters.Contains("Target") &&
            context.InputParameters["Target"] is Entity)
            {
                target =(Entity)context.InputParameters["Target"];
                if (target != null)
                {
                    householdname = target.GetAttributeValue<string>("mcg_HouseholdName");
                }
            }
            OrganizationServiceContext orgcontext = new OrganizationServiceContext(service);
            {
                var query = (from c in orgcontext.CreateQuery<mcg_household>()
                             where c.mcg_HouseholdName == householdname
                             select c
                            );
                List<mcg_household> householdlist = query.ToList<mcg_household>();
                if (householdlist.Count > 0)
                {
                    throw new InvalidPluginExecutionException("Record Already Exists!");
                }
            }
        }

我认为问题在于getattribute,因为当我用一些硬编码的值检查它时,它会运行。请告诉我,我应该在什么阶段注册这个插件,如果代码有什么问题。

1 个答案:

答案 0 :(得分:2)

如果您的代码使用硬编码示例,则执行阶段可能存在问题。您必须在执行前的操作阶段和同步模式中注册插件步骤。 Check this article for details

另外,检查“mcg_HouseholdName”是否为正确的字符串。