我实现了我的第一个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,因为当我用一些硬编码的值检查它时,它会运行。请告诉我,我应该在什么阶段注册这个插件,如果代码有什么问题。
答案 0 :(得分:2)
如果您的代码使用硬编码示例,则执行阶段可能存在问题。您必须在执行前的操作阶段和同步模式中注册插件步骤。 Check this article for details。
另外,检查“mcg_HouseholdName”是否为正确的字符串。