I am not sure if an artificial property is the correct type of property that you want to use.
If you want to have a custom property that is not bound to a column in the database then you need Transient
property. Defining one is easy - after adding the property to a class you have to add a new line in the mapping configuration:
configuration.HasProperty(x => x.MyCustomProperty).AsTransient();
This will instruct Telerik Data Access not to try to persist the data from this property to the database and will prevent the exception that you are seeing. Most common scenario that you can implement in this way is defining calculated property that derives its value from the other class properties (example: DisplayName
derived by First
names and etc). The other case is a property that is completely non-related to the database.
Artificial properties on the other hand and special persistent properties that are not known during compile time, but are added to your data model during runtime of the application. That's why there you are using Reflection-like string based syntax. For more information about artificial types and properties I suggest that you check our documentation articles
If you need any further assistance do not hesitate to get back to us,
Check out the latest announcement
about Telerik Data Access vNext as a powerful framework
able to solve core development problems.