在多租户,单个Web应用程序中使用EF的数据库连接注意事项

时间:2012-05-09 20:33:34

标签: c# entity-framework multi-tenant

我们正在编写单页应用程序(SPA),用户在成功登录后连接到不同的数据库。 当用户通过身份验证和授权后,他们的“个人资料”将包含他们可以连接到的数据库ID ...

我的问题围绕实体框架和ASP.NET MVC(以及Web API)

  • 是否可以在运行时(在用户登录后)使用EF连接到其他数据库。我不能使用web.config中的连接字符串,因为它会有所不同......如果可能的话,任何例子都会受到赞赏....
  • 由于创建连接是昂贵的操作,我应该考虑进行任何性能优化吗?我应该在第一次用户登录时尝试为数据库创建一个连接池,还是应该为我提前为每个数据库创建一个池(嗯...)?

1 个答案:

答案 0 :(得分:0)

如果不同的数据库具有相同的结构并且您可以使用相同的模型,那么您应该能够连接到不同的数据库。 ObjectContext和DbContext都有构造函数,它接受可以是连接字符串的字符串。请注意,ObjectContext需要包含工件名称/位置的实体连接字符串。 我相信连接是自动汇集的。除非测试表明这会导致性能问题,否则我不会尝试在此进行任何优化。