微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 在另一个上下文中引用Identity用户

我是Entity Framework的新手,正在开发一个利用Entity Framework 6,Identity 2,Web Api 2和MVC 5的项目.

在项目的初始工作中,我创建了一个BusinessConnectionsContext来表示我的业务模型的构建.到目前为止,我将自动创建的ApplicationDbContext留给了自己的设备.我主要关注Web Api 2.

在我的解决方案中,我有一个用于我的模型的程序集,其中包括BusinessConnectionsContext和ApplicationDbContext,Web Api的程序集以及使用MVC5的Web程序集. WebApi和Web程序集都将使用Models程序集.

我已经到了需要将ApplicationDbContext用户与BusinessConnectionsContext链接的地步,但我找不到任何有关此信息的信息.我觉得我可能做错了.

是否应将BusinessConnectionsContext中的所有模型重定位到ApplicationDbContext中?

这似乎是一个相当大的举措.如果您在一个系统中有其他不相关的上下文需要链接到身份,通常会发生什么?

解决方法

简短的回答是所有模型都应该位于一个上下文中.要么坚持使用认创建的ApplicationDbContext,要么自己创建.到目前为止,我还没有看到任何处理可能在两个上下文之间共享的Identity模型的事情,我也不认为事务会扩展到多个上下文.

至于当你在一个系统中有其他不相关的上下文需要链接到身份时会发生什么?我不知道.我可以说你在不同的名称空间中也有上下文和模型,并且一次只使用一个上下文,特别是在更新时.

与问题略有不同的一件事是ApplicationUserManager的问题,它是IUserStore的包装器.

我有几个项目使用一个上下文,但因为他们对访问项目的人有不同的期望(一个用于管理员通过网络,一个用户通过网络,另一个用于特殊用户通过webapi),他们都有自己的ApplicationUserManager.在某些时候,我决定使用Unity来确保在所有存储库和工作的统一性之间共享一个上下文.我还必须确保这个上下文也用在ApplicationUserManager使用的IOwinContext中.由于我不是这方面的专家,我不会在这里详细介绍(我想这将是另一个问题的答案),但足以说,关于多个项目之间共享的上下文和身份的主题,这是需要保留的心里.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐