Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework OAuth 2.0实现-身份验证服务器和资源服务器是否应该有单独的数据库?_Entity Framework_Oauth_Entity Framework Migrations - Fatal编程技术网

Entity framework OAuth 2.0实现-身份验证服务器和资源服务器是否应该有单独的数据库?

Entity framework OAuth 2.0实现-身份验证服务器和资源服务器是否应该有单独的数据库?,entity-framework,oauth,entity-framework-migrations,Entity Framework,Oauth,Entity Framework Migrations,官方规范可能没有提到这一点,或者认为它“超出了本规范的范围” 假设我们已经决定分离身份验证服务器和资源服务器 实际上,为什么我们希望资源和身份验证服务器访问同一个数据库,或者为什么我们希望保留两个单独的数据库—每个服务器一个 我写这个问题是因为实体框架。如果我在两个站点之间共享同一个数据库,我认为即使身份验证服务器只接触与帐户相关的表,而资源服务器只接触数据(POCO)表,迁移也会发生冲突。(实际上,我还没有尝试过这个方法,但我不想浪费时间进行实验,所以我想听听遇到这个问题的人的意见。) 但是如

官方规范可能没有提到这一点,或者认为它“超出了本规范的范围”

假设我们已经决定分离身份验证服务器和资源服务器

实际上,为什么我们希望资源和身份验证服务器访问同一个数据库,或者为什么我们希望保留两个单独的数据库—每个服务器一个

我写这个问题是因为实体框架。如果我在两个站点之间共享同一个数据库,我认为即使身份验证服务器只接触与帐户相关的表,而资源服务器只接触数据(POCO)表,迁移也会发生冲突。(实际上,我还没有尝试过这个方法,但我不想浪费时间进行实验,所以我想听听遇到这个问题的人的意见。)


但是如果我分开数据库,我就失去了用户和他拥有的数据之间的外键关系——但这是必要的吗?这感觉就像是一种“我们这样做只是因为”的做法。

要将它们结合起来并使用迁移,您需要有一个用于迁移的DbContext,其中包括auth或资源服务器使用的所有类型,并将其用于脚手架迁移。对于那些需要多个上下文并希望使用迁移的人来说,这似乎是一种常见的做法;到目前为止,它对我很有效

至于外键约束,它们只是那个约束。它们在数据库级别强制执行您的业务规则(Foo.Bar必须包含存在于Baz.Bar中的值)。这是否必要实际上取决于您的用例。很少有事情是“仅仅因为”而做的,尽管很多事情是在没有完全理解的情况下做的——“因为我在其他地方看到它是这样做的”。其他地方(或他们从何处复制的地方等)可能有一个完全有效的理由,这可能适用于您的用例,也可能不适用于您的用例