[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Collapse]eXpressApp Framework
 [Expand]Fundamentals
 [Expand]Getting Started
 [Expand]Concepts
 [Expand]Design-Time Features
 [Expand]Deployment
 [Expand]Task-Based Help
  Frequently Asked Questions (FAQ)
 [Collapse]API Reference
  [Expand]DevExpress.EasyTest.Framework
  [Expand]DevExpress.ExpressApp
  [Expand]DevExpress.ExpressApp.Actions
  [Expand]DevExpress.ExpressApp.AuditTrail
  [Expand]DevExpress.ExpressApp.Chart
  [Expand]DevExpress.ExpressApp.Chart.Web
  [Expand]DevExpress.ExpressApp.Chart.Win
  [Expand]DevExpress.ExpressApp.CloneObject
  [Expand]DevExpress.ExpressApp.ConditionalAppearance
  [Expand]DevExpress.ExpressApp.Dashboards
  [Expand]DevExpress.ExpressApp.Dashboards.Web
  [Expand]DevExpress.ExpressApp.Dashboards.Win
  [Expand]DevExpress.ExpressApp.Data
  [Expand]DevExpress.ExpressApp.DC
  [Expand]DevExpress.ExpressApp.DC.ClassGeneration
  [Expand]DevExpress.ExpressApp.Editors
  [Expand]DevExpress.ExpressApp.EF
  [Expand]DevExpress.ExpressApp.EF.Utils
  [Expand]DevExpress.ExpressApp.FileAttachments.Web
  [Expand]DevExpress.ExpressApp.FileAttachments.Win
  [Expand]DevExpress.ExpressApp.Filtering
  [Expand]DevExpress.ExpressApp.HtmlPropertyEditor.Web
  [Expand]DevExpress.ExpressApp.HtmlPropertyEditor.Win
  [Expand]DevExpress.ExpressApp.Kpi
  [Expand]DevExpress.ExpressApp.Layout
  [Expand]DevExpress.ExpressApp.Maps.Mobile
  [Expand]DevExpress.ExpressApp.Maps.Mobile.Editors
  [Expand]DevExpress.ExpressApp.Maps.Web
  [Expand]DevExpress.ExpressApp.Maps.Web.Helpers
  [Expand]DevExpress.ExpressApp.MiddleTier
  [Expand]DevExpress.ExpressApp.Mobile
  [Expand]DevExpress.ExpressApp.Mobile.Editors
  [Expand]DevExpress.ExpressApp.Mobile.MobileModel
  [Expand]DevExpress.ExpressApp.Mobile.SystemModule
  [Expand]DevExpress.ExpressApp.Mobile.Templates
  [Expand]DevExpress.ExpressApp.Model
  [Expand]DevExpress.ExpressApp.Model.Core
  [Expand]DevExpress.ExpressApp.Model.NodeGenerators
  [Expand]DevExpress.ExpressApp.ModelEditor
  [Expand]DevExpress.ExpressApp.Notifications
  [Expand]DevExpress.ExpressApp.Notifications.Web
  [Expand]DevExpress.ExpressApp.Notifications.Win
  [Expand]DevExpress.ExpressApp.Office.Win
  [Expand]DevExpress.ExpressApp.PivotChart
  [Expand]DevExpress.ExpressApp.PivotChart.Web
  [Expand]DevExpress.ExpressApp.PivotChart.Win
  [Expand]DevExpress.ExpressApp.PivotGrid
  [Expand]DevExpress.ExpressApp.PivotGrid.Web
  [Expand]DevExpress.ExpressApp.PivotGrid.Win
  [Expand]DevExpress.ExpressApp.Reports
  [Expand]DevExpress.ExpressApp.Reports.Web
  [Expand]DevExpress.ExpressApp.Reports.Win
  [Expand]DevExpress.ExpressApp.ReportsV2
  [Expand]DevExpress.ExpressApp.ReportsV2.Mobile
  [Expand]DevExpress.ExpressApp.ReportsV2.Web
  [Expand]DevExpress.ExpressApp.ReportsV2.Win
  [Expand]DevExpress.ExpressApp.Scheduler
  [Expand]DevExpress.ExpressApp.Scheduler.Web
  [Expand]DevExpress.ExpressApp.Scheduler.Win
  [Expand]DevExpress.ExpressApp.ScriptRecorder
  [Expand]DevExpress.ExpressApp.ScriptRecorder.Web
  [Expand]DevExpress.ExpressApp.ScriptRecorder.Win
  [Expand]DevExpress.ExpressApp.Security
  [Expand]DevExpress.ExpressApp.Security.Adapters
  [Expand]DevExpress.ExpressApp.Security.ClientServer.Wcf
  [Expand]DevExpress.ExpressApp.Security.EF.Adapters
  [Expand]DevExpress.ExpressApp.Security.Strategy
  [Expand]DevExpress.ExpressApp.Security.Xpo.Adapters
  [Expand]DevExpress.ExpressApp.StateMachine
  [Expand]DevExpress.ExpressApp.SystemModule
  [Expand]DevExpress.ExpressApp.Templates
  [Expand]DevExpress.ExpressApp.Templates.ActionContainers
  [Expand]DevExpress.ExpressApp.TreeListEditors
  [Expand]DevExpress.ExpressApp.TreeListEditors.Web
  [Expand]DevExpress.ExpressApp.TreeListEditors.Win
  [Expand]DevExpress.ExpressApp.Updating
  [Expand]DevExpress.ExpressApp.Utils
  [Expand]DevExpress.ExpressApp.Validation
  [Expand]DevExpress.ExpressApp.Validation.Web
  [Expand]DevExpress.ExpressApp.Validation.Win
  [Expand]DevExpress.ExpressApp.ViewVariantsModule
  [Expand]DevExpress.ExpressApp.Web
  [Expand]DevExpress.ExpressApp.Web.Controls
  [Expand]DevExpress.ExpressApp.Web.Editors
  [Expand]DevExpress.ExpressApp.Web.Editors.ASPx
  [Expand]DevExpress.ExpressApp.Web.SystemModule
  [Expand]DevExpress.ExpressApp.Web.Templates
  [Expand]DevExpress.ExpressApp.Web.Utils
  [Expand]DevExpress.ExpressApp.Win
  [Expand]DevExpress.ExpressApp.Win.Core
  [Expand]DevExpress.ExpressApp.Win.Editors
  [Expand]DevExpress.ExpressApp.Win.Model
  [Expand]DevExpress.ExpressApp.Win.SystemModule
  [Expand]DevExpress.ExpressApp.Win.Templates
  [Expand]DevExpress.ExpressApp.Win.Templates.Navigation
  [Expand]DevExpress.ExpressApp.Win.Utils
  [Expand]DevExpress.ExpressApp.Workflow
  [Expand]DevExpress.ExpressApp.Workflow.Win
  [Expand]DevExpress.ExpressApp.Xpo
  [Expand]DevExpress.ExpressApp.Xpo.Utils
  [Collapse]DevExpress.Persistent.Base
   [Expand]ActionAttribute Class
   [Expand]CaptionsForBoolValuesAttribute Class
   [Expand]CreatableItemAttribute Class
   [Expand]CurrentUserDisplayImageAttribute Class
   [Expand]CustomFormatObjectEventArgs Class
   [Expand]CustomGetValueEventArgs Class
   [Expand]DataSourceCriteriaAttribute Class
   [Expand]DataSourceCriteriaPropertyAttribute Class
   [Expand]DataSourcePropertyAttribute Class
    DataSourcePropertyIsNullMode Enumeration
   [Expand]DefaultClassOptionsAttribute Class
   [Expand]EditorAliasAttribute Class
    EmptyEntriesMode Enumeration
    ExpandObjectMembers Enumeration
   [Expand]ExpandObjectMembersAttribute Class
   [Expand]FileAttachmentAttribute Class
   [Expand]FileTypeFilterAttribute Class
   [Collapse]FriendlyKeyPropertyAttribute Class
     FriendlyKeyPropertyAttribute Members
     FriendlyKeyPropertyAttribute Constructor
    [Expand]FriendlyKeyPropertyAttribute Properties
    [Expand]FriendlyKeyPropertyAttribute Methods
   [Expand]IAreaInfo Interface
   [Expand]IBaseMapsMarker Interface
   [Expand]IDashboardData Interface
   [Expand]IFileData Interface
   [Expand]ImageEditorAttribute Class
    ImageEditorMode Enumeration
   [Expand]ImageNameAttribute Class
   [Expand]ImagesForBoolValuesAttribute Class
    ImageSizeMode Enumeration
   [Expand]IMapsMarker Interface
   [Expand]ImmediatePostDataAttribute Class
   [Expand]IndexAttribute Class
   [Expand]IPermissionPolicyRole Interface
   [Expand]IPermissionPolicyRoleWithUsers Interface
   [Expand]IPermissionPolicyUser Interface
   [Expand]ISupportFullName Interface
   [Expand]IValueManager<ValueType> Interface
   [Expand]IValueManagerBase Interface
   [Expand]IVectorMapsMarker Interface
   [Expand]IVectorMapsPieMarker Interface
    LookupEditorMode Enumeration
   [Expand]LookupEditorModeAttribute Class
    MethodActionSelectionDependencyType Enumeration
   [Expand]NavigationItemAttribute Class
   [Expand]NonCloneableAttribute Class
   [Expand]NotClonedInfoAttribute Class
   [Expand]ObjectCaptionFormatAttribute Class
   [Expand]ObjectFormatter Class
    SecurityPermissionPolicy Enumeration
    SecurityPermissionState Enumeration
   [Expand]ToolTipAttribute Class
   [Expand]ValueManager Class
   [Expand]VisibleInDashboardsAttribute Class
   [Expand]VisibleInDetailViewAttribute Class
   [Expand]VisibleInListViewAttribute Class
   [Expand]VisibleInLookupListViewAttribute Class
   [Expand]VisibleInReportsAttribute Class
  [Expand]DevExpress.Persistent.Base.General
  [Expand]DevExpress.Persistent.Base.ReportsV2
  [Expand]DevExpress.Persistent.Base.Security
  [Expand]DevExpress.Persistent.BaseImpl
  [Expand]DevExpress.Persistent.BaseImpl.EF
  [Expand]DevExpress.Persistent.BaseImpl.EF.PermissionPolicy
  [Expand]DevExpress.Persistent.BaseImpl.PermissionPolicy
  [Expand]DevExpress.Persistent.Validation
[Expand]eXpress Persistent Objects
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

FriendlyKeyPropertyAttribute Class

Specifies the property which is considered an analog of the GUID property, to allow use of more suitable values.

Namespace:DevExpress.Persistent.Base
Assembly:DevExpress.ExpressApp.v19.1.dll

Expanded Syntax

Expanded Remarks

Normally, business classes have a persistent property which represents an identifier. This identifier is usually more suitable than a GUID. To inform the system of these identifier-like properties, apply the FriendlyKeyProperty attribute to a business class, and pass the identifier-like property as the MemberName parameter. In XAF applications, the properties that use that attribute are involved in the following:

  • Used in object caption format (see ObjectCaptionFormatAttribute).
  • Displayed in List Views of Lookup Property Editors.
  • Considered as the default property if there are no properties decorated with the DefaultProperty attribute (including inherited properties), or the business class does not declare a property that contains Name as its part (excluding inherited properties).

The name of the property passed as the FriendlyKeyProperty attribute's parameter is set for the IModelClass.FriendlyKeyProperty property of the Application Model's BOModel | <Class> node.

Note

To add a column that corresponds to an identifier-like property to a Lookup List View, apply the FriendlyKey attribute in code.

In the example below, the FriendlyKeyProperty attribute is applied to the Contact class. As a result, the FullName property is considered as an identifier by the system.

Expanded Inheritance Hierarchy

System.Object
    System.Attribute
       FriendlyKeyPropertyAttribute

Expanded See Also

Is this topic helpful?​​​​​​​