当使用单个帐户选项创建新的EF6/MVC5 5应用程序时,您将得到一个具有IdentityModels.cs
的web应用程序,该应用程序包含一个IdentityUser
和一个IdentityDbContext
。我有一个单独的类库,我的所有实体都驻留在其中,它没有与实体框架的实际链接,因为坦率地说,在我看来,它们不应该知道用于存储它们的技术。
其他实体引用ApplicationUser
,所以从逻辑上说,我现在想将ApplicationUser
类移到Entities
库中,但是由于它需要从IdentityUser
继承,这意味着要添加对EF的引用。这使我最初把它们放在一个单独的图书馆的想法搞砸了。
有没有人对同样的问题有过经验和/或你会如何处理?
发布于 2014-02-21 08:22:43
首先,实体从来没有引用EF。只是上课而已。您的DbContext
子类将它们连接到实体框架中。第二,ApplicationUser
是您的用户。它不是实体框架的一部分;它只是一个继承自EF模型IdentityUser
的类。如果这是你的问题,那么你只需要克服它。除非停止使用实体框架,否则不能完全抽象出实体框架。否则,总会有一个引用的地方。
因此,要组合这两个上下文,以便可以在其他实体中使用ApplicationUser
,只需将应用程序的上下文继承的类从DbContext
更改为IdentityDbContext<ApplicationUser>
即可。然后,您可以删除MVC为您生成的类,当然,在AccountsController
中切换到应用程序上下文的引用之后。同样,这里从IdentityDbContext
继承没有问题,因为上下文本质上是与实体框架相关联的。
https://stackoverflow.com/questions/21939507
复制相似问题