Hello - How does CRM handle new entity fields? For example, if I open Contact in Customizations and add a new field does CRM automatically create a ContactExtensionBase table?
Does CRM follow this pattern for all entities? For example, if I add a new field to SystemUser does CRM automatically create a new table named SystemUserExtensionBase?
I've noticed this pattern in the local CRM implementation I'm working on and I was wondering if this was a convention that the dev team implemented or if CRM implements this pattern by default based on changes made through its UI?
Interesting question, I don't know the answer.
However, I am curious as to why you need this answer and how you will use it?
Jerry, Microsoft Dynamics CRM MVPCRM Innovation - Consulting and SolutionsNeed a solution for CRM to help you manage your Internet Lead Capture or Events ?Follow me on Twitter
The EntityName + Base and EntityName +ExtensionBase are both instantiated when the entity is first saved, it does so for all user created entities. All user created fields end up in the ExtensionBase table - the regular Base table is reserved for system fields - so you would notice on custom entities, the Base table doesn't have very many fields. This happens regardless of the entity being system or custom.
Jason Lattimer My Blog - Follow me on Twitter - LinkedIn
@Jason - Thanks for that info.
Are you saying that if I add a new field to an entity in a standard CRM implementation then CRM will auto-create those 2 tables and those tables do not already exist as part of the standard implementation?
So if I add a field to SystemUser, CRM would create SystemUserBase and SystemUserExtensionBase? What is the default database mapping for SystemUser as part of a standard implementation if no custom fields have been added?
For all the out of the box entities, you should already see both tables, for any entities you make - CRM will create both tables at the point.
So on a vanilla install, you should already see SystemUserBase and SystemUserExtensionBase tables (as well as corresponding tables for each of the stock entities). If you add a field, it will be placed into the SystemUserExtensionBase table. All of the out of the box fields exist in SystemUserBase.
great info - thanks jason!