У меня есть решение VS2017 с несколькими проектами:
- Проект 1: Общая библиотека, содержащая в основном модели EF с использованием Code First и мой класс DbContext. Обычно я использую атрибут ForeignKeyAttribute для сопоставления внешних ключей, а не функцию OnModelCreating в классе DbContext.
- Проект 2: Проект веб-приложения MVC, ссылки на Проект 1.
- Проект 3: Функция Azure, ссылки на Проект 1.
- Проект 4: Azure Webjob, ссылки на Проект 1.
Проект 2 создает экземпляр DbContext и может без проблем получать доступ и запрашивать все объекты.
Проекты 3 и 4 создают экземпляр DbContext, и всякий раз, когда они запрашивают базу данных, возникают ошибки, такие как «Неверное имя столбца« Organization_Id »и« Неверное имя столбца «Organization_Id1».
При необходимости я могу решить эту проблему, перейдя в мой класс DbContext и вручную сконфигурировав сопоставления внешних ключей сущностей в функции OnModelCreating. Но у меня много сущностей, и это займет довольно много времени для настройки таким образом.
Я просмотрел ссылки, чтобы выяснить, могу ли я определить что-то, что может существовать в веб-проекте, чего нет в других двух проектах, но есть много, и я не могу понять, какой (если есть) ) ссылки могут отсутствовать.
В идеале я хотел бы иметь возможность просто ссылаться на Project 1 из любого другого проекта, не возвращаясь назад и не добавляя ненужную конфигурацию в функцию OnModelCreating, поскольку я уже объявил эти зависимости ForeignKey через атрибуты, и я знаю, сопоставления правильные, так как все работает правильно при доступе через Project 2.