2014-02-21 3 views
2

При создании нового приложения EF6/MVC5 с использованием параметра «Индивидуальные учетные записи» вы получаете веб-приложение с IdentityModels.cs, которое содержит как IdentityUser, так и . У меня есть отдельная библиотека классов, в которой находятся все мои сущности, которые не имеют реальной ссылки на Entity Framework, потому что, честно говоря, они не должны знать о технологии, используемой для их хранения.Внедрение индивидуальных учетных записей EF6 в отдельный объект проекта

Другие объекты ссылаться на ApplicationUser так логически Теперь я хотел бы, чтобы переместить мой ApplicationUser класс к Entities библиотеки, но потому, что он должен наследоваться от IdentityUser это означало бы добавить ссылку на EF. Это испортило мою идею о том, чтобы поместить их в отдельную библиотеку в первую очередь.

Есть ли у кого-нибудь опыт работы с той же проблемой и/или как вы справитесь с этим?

ответ

1

Во-первых, сущности никогда не имеют ссылки на EF. Это просто занятия. Подкласс DbContext - это то, что сшит их в Entity Framework. Во-вторых, ApplicationUser - ваш пользователь. Это не часть Entity Framework; это просто класс, который наследуется от модели EF IdentityUser. Если это ваша проблема, тогда вам просто нужно преодолеть это. Вы не можете полностью абстрактная структура Entity Framework, если только вы не прекратите использовать Entity Framework. В противном случае всегда будет ссылка где-то.

Так, чтобы просто объединить два контекста, так что вы можете работать с ApplicationUser в ваших других лиц, вы просто просто нужно изменить класс контекст вашего приложения наследуется от от DbContext до IdentityDbContext<ApplicationUser>. Затем вы можете просто удалить класс, сгенерированный MVC для вас, после того, как вы переключили ссылку на контекст вашего приложения в AccountsController. Опять же, нет никакой проблемы, наследующей от IdentityDbContext, потому что контекст по сути связан с Entity Framework, так или иначе.

+0

Спасибо за подтверждение. У меня уже сложилось впечатление, что я не смогу получить мои сущности/POCOs полностью независимыми от EF при внедрении метода аутентификации EF. Ваш пост подтвердил это для меня. –

Смежные вопросы