feat: Add IParsable<T> support for strongly-typed IDs #121
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds support for primary keys that implement
IParsable<T>, enabling CoreAdmin to work with strongly-typed ID patterns (DDD-style value objects).Problem: Previously, CoreAdmin only supported
Guid,int, andlongprimary keys. When using strongly-typed IDs like:Edit and Delete operations would fail with:
Solution: Added a
ConvertPrimaryKeyhelper method that:Guid,int,long,string(existing behavior)IParsable<T>interface and calls the staticParsemethod via reflectionTypeConverterif availableChanges
System.ComponentModelusing for TypeConverter fallbackConvertPrimaryKey(string id, Type clrType)static helper methodGetEntityFromDbSetto use the new helperDeleteEntityPostto use the new helperTesting
Tested locally with a .NET 10 project using strongly-typed IDs implementing
IParsable<T>. Edit and Delete operations now work correctly.Breaking Changes
None. This is fully backwards compatible - existing behavior for Guid/int/long is preserved.
🤖 Generated with Claude Code