Resources
At a minimum, resources must implement IIdentifiable<TId>
where TId
is the type of the primary key. The easiest way to do this is to inherit from Identifiable<TId>
.
public class Person : Identifiable<Guid>
{
}
Note
Earlier versions of JsonApiDotNetCore allowed a short-hand notation when TId
is of type int
. This was removed in v5.
If you need to attach annotations or attributes on the Id
property, you can override the virtual property.
public class Person : Identifiable<int>
{
[Key]
[Column("PersonID")]
public override int Id { get; set; }
}
If your resource must inherit from another class, you can always implement the interface yourself.
In this example, ApplicationUser
inherits from IdentityUser
,
which already contains an Id
property of type string
.
public class ApplicationUser : IdentityUser, IIdentifiable<string>
{
[NotMapped]
public string StringId { get => Id; set => Id = value; }
}