Entity framework Code First infers the Foreign Key by using the Navigational property. ForeignKey Attribute can be used to override the default behaviour
Use DatabaseGenerated Attribute on a property whose value is automatically generated by the Database. This attribute is part of the System.ComponentModel.DataAnnotations.Schema Namespace. This attribute works both in Entity framework & EF Core
Using Timestamp Attribute is a way to handle the Concurrency issues. The Concurrency issue arises when multiple users attempt to update/delete the same row at the same time. This issue can be handled either by using the Timestamp column or ConcurrencyCheck attribute on the property. Timestamp columns are the preferred way of using for concurrency check. This attribute is available in both Entity Framework & Entity Framework Core
Concurrency Check used to handle conflicts that result when multiple users are updating (or deleting) the table at the same time. You can add the ConcurrencyCheck attribute on any property, which you want to participate in the Concurrency Check. This attribute works the same way in both EF 6 & EF Core.
The complex type attribute denotes the class as a complex type. The complex type is a class, which is similar to an entity, but with few differences. The Complex Types are not available in EF Core.