Skip to content

Dave/include columns - #281

Open
davethieben wants to merge 2 commits into
ericdc1:masterfrom
davethieben:dave/include-columns
Open

Dave/include columns#281
davethieben wants to merge 2 commits into
ericdc1:masterfrom
davethieben:dave/include-columns

Conversation

@davethieben

Copy link
Copy Markdown

Currently SimpleCrud only includes properties in SELECT/INSERT/UPDATE if the property type is a "simple" type (standard primitives like int, bool, string, etc) and is not marked as [Editable(false)]. Custom types can not be used for properties in SimpleCrud models, even though it is supported in Dapper by using a TypeHandler<T>. Registering a TypeHandler<T> in Dapper.SqlMapper enables Dapper to map to/from db values, but SimpleCrud doesn't know this and has no way of interogating Dapper for types that are handled this way.

This PR updates GetScaffoldableProperties<T>() to also include properties that have either the [Column] attribute or the [Key] attribute explicitly applied, or if the property type implements IConvertible. This allows a consumer to indicate properties that are to be included in SQL statements either on the property itself or on the property type.

To fully support using a property type that is IConvertible, Dapper must be configured with a TypeHandler<T> to provide the mapping to/from the database expected values.

Added tests to confirm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant