Если в строке подключения есть метаданные, EF считает, что это Model First или Database First. Если это простая строка соединения, EF считает, что это Code First. Однако, если вы хотите начать сначала с модели, но заставите EF думать, что вы действительно делаете код в первую очередь (что вы и делаете), убедитесь, что вы используете генератор кода DbContext, а не генератор по умолчанию. Код POCO на самом деле - это «простые старые объекты c #» - никакой специальной базы данных не знает и не отслеживает изменения в них вообще. Чтобы использовать генератор кода DbContext, щелкните правой кнопкой мыши на диаграмме модели и выберите «Добавить новый элемент генерации кода ...», затем выберите ADO.NET DbContext Generator. Кроме того, в зависимости от того, как вы назвали свои первичные и внешние ключи и / или являются ли они более сложными, чем простые int ID, вам, вероятно, потребуется заполнить некоторый код, чтобы отобразить отношения между вашими объектами в методе "OnModelCreating" в вашем контекст. Удалите строку throw new UnintendedCodeFirstException();
и замените ее вашим кодом отображения. В противном случае EF не сможет выяснить все отношения (помните, что нет метаданных, на которые он мог бы положиться).
Надеюсь, это поможет.