繁体   English   中英

将现有的ASP.NET Web窗体应用程序转换为多租户

[英]Convert existing ASP.NET web forms application to multi-tenancy

我有一个现有的ASP.NET Web窗体站点,该站点使用entityframework连接到单个SQL数据库作为数据源。

我被要求将应用程序转换为多租户应用程序,以满足新客户的需求。

代码库是相同的,而我看到的最简单的方法就是根据用户表中的字段将应用程序连接到数据库的其他副本。

问题:

1)我在哪里存储用户? 当前在现有应用程序中只有一个用户表,我是否需要将此表拆分为两个租户之间共有的第三数据库?

2)最大的问题:如何根据用户表中的字段将实体框架连接到其他数据库? 当前,数据库是从web.config设置的。 我想用尽可能少的代码更改来做到这一点!

如果使用Code-First,我强烈建议您在全局级别而不是在每个查询中都这样做。 参见https://github.com/jbogard/EntityFramework.Filters

我认为,就您而言,多租户只是应用程序中每个表的拆分器。

  1. 确定不需要拆分的公用表。
  2. 将拆分器字段添加到另一个表。
  3. 将每个用户链接到拆分器值。
  4. 向每个EF linq查询添加XXX.Where( => .Splitter = SplitterValue)条件。 也许您可以在全球范围内做到这一点,但这取决于您的体系结构。
  5. 重建索引以覆盖该查询

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM