I want to define [Required]
attributes on a Complex Type in Entity Framework. For example, I have a Customer
entity with an optional Address
It's not possible with a complex type. You'll need to create an Address entity if you want it to be nullable.
What EF will do with a complex type is map the properties to the same table - which it sounds like you've intended.
Because of that - your schema for your example would look like this:
With a non-nullable column for Address_PostCode, since it's not valid in the database there's not a way for EF to create the row, without your object having an address, and a postcode.