Viktor Ilukhin, эм, что?
Во первых Records и Users, и Roles - не поля, а свойства.
Я так и не понял, что нужно сделать, каждая описанная модель отвечает за свою ТАБЛИЦУ в базе.
По типу: db.Users - таблица пользователей, db.Roles - таблица ролей и т.д.
да, Code First.
Без ID в DBContact не дает создать таблицу (миграции).
Contacts - контакты, который имеет данный пользователь (подсказка MSSQL)
Contacts1 - контакты, в которых есть данный пользователь (подсказка MSSQL)
И имхо, мне лучше когда написано моим вариантом