Skip to content

Instantly share code, notes, and snippets.

@pawelgradecki
Created June 13, 2017 13:31
Show Gist options
  • Save pawelgradecki/49955f243adcb8704ea87bfc7f541a0d to your computer and use it in GitHub Desktop.
Save pawelgradecki/49955f243adcb8704ea87bfc7f541a0d to your computer and use it in GitHub Desktop.
public class MyEntity : Entity
{
protected string GetAttributeName(string propertyName)
{
return this.GetType().GetProperties().FirstOrDefault(p => p.Name == propertyName).GetCustomAttribute<AttributeLogicalNameAttribute>().LogicalName;
}
protected T GetAttribute<T>([CallerMemberName]string propertyName = null)
{
return this.GetAttributeValue<T>(GetAttributeName(propertyName));
}
protected void SetAttribute(object value, [CallerMemberName]string propertyName = null)
{
this.SetAttributeValue(GetAttributeName(propertyName), value);
}
}
[EntityLogicalName("account")]
public class MyAccount : MyEntity
{
public MyAccount()
{
this.LogicalName = typeof(MyAccount).GetCustomAttribute<EntityLogicalNameAttribute>().LogicalName;
}
[AttributeLogicalName("odx_clientcode")]
public string ClientCode
{
get => GetAttribute<string>();
set => SetAttribute(value);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment