我发现这个代码段提供了一个名为annotation
的新实体的创建。
我找不到在XrmServicesContext
指令中声明的类using
。
有谁知道这到底是什么?
private static void AddNoteToContact(IOrganizationService service, Guid id)
{
Entity annotation = new Entity();
annotation.LogicalName = "annotation";
using (var crm = new XrmServicesContext(service))
{
var contact = crm.ContactSet.Where(c => c.ContactId == id).First();
Debug.Write(contact.FirstName);
annotation["createdby"] = new EntityReference("systemuser", new Guid("2a213502-db00-e111-b263-001ec928e97f"));
annotation["objectid"] = contact.ToEntityReference();
annotation["subject"] = "Creato con il plu-in";
annotation["notetext"] = "Questa note è stata creata con l'esempio del plug-in";
annotation["ObjectTypeCode"] = contact.LogicalName;
try
{
Guid annotationId = service.Create(annotation);
crm.AddObject(annotation);
crm.SaveChanges();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
// var note = new Annotation{
//Subject ="Creato con il plu-in",
//NoteText ="Questa note è stata creata con l'esempio del plug-in",
//ObjectId = contact.ToEntityReference(),
//ObjectTypeCode = contact.LogicalName
};
}
答案 0 :(得分:2)
首先,您必须生成早期绑定的实体类。 Check this article。然后,在代码中插入using语句。
在您的示例中,您正在使用早期和晚期绑定的组合。我建议你选择其中一个。在早期绑定的情况下,在生成早期绑定类之后,您可以修改代码,如:
Annotation annotation = new Annotation();
using (var crm = new XrmServiceContext(service))
{
annotation.ObjectId = contact.ToEntityReference();
annotation.Subject = "Creato con il plu-in";
annotation.NoteText = "Questa note e stata creata con l'esempio del plug-in";
annotation.ObjectTypeCode = Contact.LogicalName;
crm.AddObject(annotation);
crm.SaveChanges();
}
此处有一个错误, annotation.CreatedBy 字段是只读的,您无法通过代码为此设置值。
如果你要使用后期绑定,则不需要 XrmServiceContext 。您可以使用QueryExpression从CRM获取联系人。查找examples here。对于注释创建使用:
Guid annotationId = service.Create(annotation);
答案 1 :(得分:0)
在SDK / bin / CrmSvcUtil.exe中,此工具用于生成早期绑定的实体类 在命令提示符下,运行带参数的CrmSvcUtil.exe,即
如果您的sdk bin位置是“D:\ Data \ sdk2013 \ SDK \ Bin \ CrmSvcUtil.exe”,那么您的命令将是这样的,
的 CMD:强>
D:\Data\sdk 2013\SDK\Bin>CrmSvcUtil.exe /out:Xrm\Xrm.cs /url:[OrganizationServiceUrl] /username:[yourusername] /password:[yourpass] /namespace:Xrm /serviceContextName:XrmServiceContext
[OrganizationServiceUrl]:是您的组织服务网址,您可以通过设置/自定义/开发人员资源/组织服务找到它,例如
https://msdtraders.api.crm.dynamics.com/XRMServices/2011/Organization.svc
[您的用户名]:您的用户名
[你的通行证]:你的密码
这将在bin / Xrm / Xrm.cs中生成名为Xrm.cs的文件和实体类。在bin中创建文件夹Xrm(如果不存在),或在cmd [out:Xrm \ Xrm.cs]中编辑参数。
在项目中添加Xrm.cs
在您使用XrmServicesContext
的代码中添加using语句
比如using Xrm;
现在您可以使用/访问XrmServicesContext
和所有实体......享受。