Dynamics crm 2011 CRM 2011中自定义实体和字段的资本化

Dynamics crm 2011 CRM 2011中自定义实体和字段的资本化,dynamics-crm-2011,dynamics-crm-4,Dynamics Crm 2011,Dynamics Crm 4,在迁移到CRM 2011的过程中,我们发现不同的开发人员使用了不同的自定义实体和自定义字段的大小写。这给使用早期绑定方法的自定义编程带来了麻烦。有没有办法在迁移之前(或之后)规范化实体/字段名称?据我所知。实现您想要的正确资本化的唯一方法是用适当的名称重新创建实体 在迁移之前或之后,主要是升级CRM服务器安装并修改数据库模式以反映升级,同时仍保持当前数据和自定义数据 这就是“受支持的”斯皮尔所说的 至于实际的解决办法。如果您希望升级,我会尝试将您当前的CRM 4系统恢复到测试域。然后看看在实际的

在迁移到CRM 2011的过程中,我们发现不同的开发人员使用了不同的自定义实体和自定义字段的大小写。这给使用早期绑定方法的自定义编程带来了麻烦。有没有办法在迁移之前(或之后)规范化实体/字段名称?

据我所知。实现您想要的正确资本化的唯一方法是用适当的名称重新创建实体

在迁移之前或之后,主要是升级CRM服务器安装并修改数据库模式以反映升级,同时仍保持当前数据和自定义数据

这就是“受支持的”斯皮尔所说的

至于实际的解决办法。如果您希望升级,我会尝试将您当前的CRM 4系统恢复到测试域。然后看看在实际的“不可接触”crm数据库中更改模式名称的可行性。我相信有一个MetaDataSchema.Entity表,它集中存储在这个表中,所以我要测试一下它的可用性,看看它对Web服务有什么影响

因此,您面临的选择与我在使用Dynamics CRM时多次面临的选择类似。按照支持的方式进行,或者进行一点“Yee-Ha”开发。对不起,这可能不是你想听的

编辑:

至于要改变什么,我不能肯定,因为目前我还没有一个CRM 4.0系统,只能交给2011年。但是,作为示例,[OrganizationName\u MSCRM]数据库中将有一个MetadataSchema.Entity表。其中某些列将跳出。名称、物理名称和逻辑名称

逻辑名称是CRM用户使用的名称,无论您如何输入,它默认为小写

我相信PhysicalName和Name是您希望更改为小写的名称

实体的实际“名称”,例如逻辑名称是“account”,而在CRM中,它以用户友好的方式显示,通过名为MetadataSchema.LocalizedLabel的表通过外键“ObjectId”关联,在本例中,外键是“EntityId”字段

这就是我希望进行更改的地方,因为它不应该对其余的数据产生影响,因为“logicalname”字段是CRM可能使用的字段

就您这一代的强类型类而言

如果您使用latebound,例如

relatedEntity.LogicalName = "new_related_account";
relatedEntity["relatedaccountid"] = entity["accountid"];
然后,所有属性和逻辑名称都需要小写。因为这将使用先前在MetadataSchema表中标识的“logicalname”属性

但是,使用SVCUtil时,我只能假设它查看“Name”和“Physical Name”属性,以便在生成用于自定义应用程序的文件时提供稍微更友好的编码体验


虽然如果您希望使用早期绑定类生成,这应该不会是一个问题,因为生成的定义文件将提供有关属性和属性正确资本化的intellisense,并且如果您像前面的示例一样使用后期绑定,则它都是小写的。因此,与其说它完全不切实际,不如说它看起来有点凌乱()

我们有一个测试域,所以这是可能的。既然它是“不可触碰的”,那么有没有关于“可以”修改哪些内容的文档?除了MetaDataSchema之外,您还知道更多吗?请参见答案编辑,太长了,无法添加注释=)因为早期绑定使用物理名称更友好,因此需要使用Intellisense,但如果不使用Intellisense,则更像是一场噩梦。不幸的是,这听起来不值得花时间在这个时刻。如果我找到它,我会更新这篇文章,看看它是否有效。现在,我将标记为complete。如果无法通过“supported”方法重命名,那么是否可以使用CrmSvcUtil.exe仅使用小写字母生成实体类?然而,我没有看到任何参数。当CrmSvcUtil根据模式生成时,我观察到以下SDK函数(我假设其他函数)需要使用小写:RetrieveAttributeRequest.LogicalName