我们目前正在开发将在Windows Azure平台上托管的SAAS应用程序代码名称FinAcuity,主数据库将为SQL Azure。Windows Azure/SQL Azure实体框架中的动态数据库/架构
下面是我们产品的一些技术参数:
- 开发环境 - Asp.Net 4.0 MVC 3(剃刀),实体框架
- 数据库 - SQL Azure的
这里我们的业务案例:
- 我们的产品是一个SAAS产品,而且它将包含财务Da我们将为每个客户端提供单独的数据库以实现更高级别的多租户,数据隔离&安全。
- 现在客户可以在其账户下创建多个公司,这些公司将由Schemas根据特定的客户数据库分隔。
注:表格结构对于每个模式都是相同的。
以下是一些场景,可以让您更深入地了解我们的应用程序流程。
方案1:
- 要提供在客户端注册新的数据库,我们要运行存储过程,将创建数据库的基本结构。
- 我们怀疑:在SQL Azure上这样做的正确方法还是有其他方法吗?
方案2:
- 对于下客户数据库访问多个模式,我们已经动态生成各个模式SSDL文件和用于该文件进行连接。
- 我们怀疑:有没有其他方式来做到这一点,比如对多个连接使用相同的SSDL文件实例并传递元数据进行连接?
方案3:
- 随着我们的应用程序支持即席查询和Excel文件的动态创建表,我们将提供将在后台运行存储过程,并创建向导该表从Excel文件动态从头文件选择向导在特定架构下的客户端数据库。
- 我们的怀疑:如果有的话,建议我们更好的方法吗?
方案4:
- 现在作为新表添加到模式,我们必须更新EDMX文件从该新创建的表中获取数据。为此,我们将运行将从新创建的表中获取数据的存储过程。
- 我们怀疑:有没有更新EDMX文件运行时和获取数据的方法?
需要针对上面列出的每种情况的最佳解决方案提供建议。
预先感谢您。
最好的问候 - 萨赫勒
你要分这个分离约EF和SQL Azure的问题。顺便说一句。方案4超出了EF的范围 - 您将不得不直接使用SQL /存储过程来查询动态表而不使用EF。 – 2012-07-30 09:28:48