实体框架 - 从多个网站访问/开发相同的数据库?

时间:2013-12-31 16:29:08

标签: asp.net entity-framework migration code-first

我的主网站使用数据库来存储和访问用户帐户。我正在使用EF来管理架构。我还定义了特定于站点的POCO并将它们迁移到数据库中。

现在,如果我想要一个单独的网站,例如,资源服务器(Web API),它将公开(通过授权)主网站上设置的相同数据,该怎么办?

  • 我是否会再次在资源服务器上创建相同的POCO和派生的DbContext?但这似乎是重复工作。
  • 如果我想在资源服务器上创建新的POCO并将它们反映到同一个数据库中,该怎么办?这不会与当前的迁移(保存在数据库中)发生冲突,然后会破坏主网站上的EF设置吗?

我已经看到了将POCO和DbContexts放在库中并让多个项目引用同一个库的建议。这似乎是可行的,但是我必须对连接字符串进行硬编码,这对我来说似乎很脏。

我开始认为EF可能不推荐用于这种设置。看起来数据库优先方法在这里发挥得更好 - 尽管我必须为每个数据库模式更改手动重新编写数据上下文(很可能是LINQ-SQL)。

在这种情况下,是否有任何鲜为人知的功能,事实,做法等适用于EF?

1 个答案:

答案 0 :(得分:0)

通常,您可以通过让一个API为两个站点提供服务来避免重复,并在需要时为每个站点提供资源版本。另一方面,如果您选择重用并添加方法,则创建其他EF代码优先实体不应干扰其他站点数据层(如果仔细建模和映射)。 DbContext连接字符串不必是硬编码的。