I just started with the Entity Framework and started to design the model first. So in my model there is a Person who can have a PrivateTelephone, so I created an 0..1 to 1 association. As the picture below shows.

So far so good. But when I generate the database the [PrivateTelephone] is set to NOT NULL. Why can’t this be just NULL?
It is becauser your relations are defined in reverse order. You should have 1 on
Personand 0..1 onTelecomto specify thatPersonis the principal which can have one or zero phones. In your mapping you say thatTelecomis principal which can have one or zero persons but person must haveTelecom. It will also lead to reverse problem due to your incorrect mapping. You have six one-to-one relations toTelecombut if you reverse them as you demand you will say that all six relations (all six FKs inTelecom) will be NOT NULL = each record will have to participate in all six relations.One-to-one relation is very special and should be used rarely. You should instead have one-to-many relation from
PersontoTelecomwith a new column inTelecomspecifying the type.When using one-to-one relation you must have FK in dependent table configured with unique index. EF doesn’t support unique indices so when you model one-to-one relation in model first it is still one-to-many in database and if database is used by another application it can break your application.
Also avoid unnecessary inheritance. Do you need
Personas separate entity? = is there any instance which is only person and not employee? Are there more derived types from person? If not you don’t need person and if yes it still doesn’t mean that base person is a good idea. The same is true with employee. Inheritance has its own rules in EF and when using model first it will by default creates TPT inheritance = the worst one because it results in very complex and slow database queries.