当我接受mvc4教学时,我接受了这种方法的教学:
usercontext处理所有用户配置文件
datacontext处理应用程序的所有持久数据
这意味着我的应用程序有两个派生自上下文的类;用户和数据。
这很好用,直到我开始构建更多应用程序并遇到问题我需要实例化UserContext类以从用户获取属性,如他们的名字或电子邮件地址。
在localhost上实例化UserContext对象时(usercontext和datacontext都存储在1个数据库中),它返回值并且工作正常。
当我上线时,似乎当我在Datacontext上使用datamigrations时,它会删除我的usercontext表。这很奇怪,因为它们仍然存在,用户仍然可以登录和注册,但是当我实例化UserContext对象时,我得到一个空引用错误。
当我迁移我的usercontext上下文时,我的datacontext表被擦除并且实例化UserContext对象完美地工作但是实例化datacontext会引发错误。
仔细观察时。如果我迁移datacontext,在服务器资源管理器内我的datacontext表都获得前缀dbo。例如(dbo.Programs),但我的用户上下文表没有获得此前缀。 当我迁移用户上下文时,这些表会获得前缀dbo.UserProfiles,但我的datacontext表会丢失此前缀。
我研究了这个问题并找到了解决方案,你不应该在一个数据库中存储2个上下文。
有了这个建议,它就会抛弃我的逻辑,而我所学到的模式,我只是觉得有些错误,而且必须有更好的模式。
根据我给出的研究建议,我应该将我的datacontext存储在usercontext中。这绝对没有逻辑意义。为什么我要将数据存储在usercontext中?为什么我要将我的用户存储在datacontext中?
其他解决方案是创建2个数据库,对我来说似乎也不对。
有人可以告诉我他们的模式,方法或解决方案吗?
谢谢