Asp.net mvc 使用ORM设计asp.net MVC应用程序并在将来迁移到NoSql

Asp.net mvc 使用ORM设计asp.net MVC应用程序并在将来迁移到NoSql,asp.net-mvc,orm,nosql,scalability,Asp.net Mvc,Orm,Nosql,Scalability,刚刚开始一个新的asp.net mvc解决方案,其中一个要求是能够在后期扩展到潜在的数百万用户 我计划使用一个通用存储库,它公开IQuerable并在服务/应用程序级别使用linq(我知道这不是一种纯粹的DDD方法,但这不是争论的焦点:)。我计划将EF作为数据访问的ORM(使用分布式缓存作为二级缓存,以在某种程度上实现可伸缩性) 我将面临的问题是所有这些linq查询都与任何未来的NoSql linq提供程序不兼容(NoSql linq提供程序不太可能支持连接)。 但我愿意冒着不得不重新考虑所有这

刚刚开始一个新的asp.net mvc解决方案,其中一个要求是能够在后期扩展到潜在的数百万用户

我计划使用一个通用存储库,它公开IQuerable并在服务/应用程序级别使用linq(我知道这不是一种纯粹的DDD方法,但这不是争论的焦点:)。我计划将EF作为数据访问的ORM(使用分布式缓存作为二级缓存,以在某种程度上实现可伸缩性)

我将面临的问题是所有这些linq查询都与任何未来的NoSql linq提供程序不兼容(NoSql linq提供程序不太可能支持连接)。 但我愿意冒着不得不重新考虑所有这些linq查询的风险,只要它们都位于一个地方:服务/应用层


什么是更好的方法?有什么建议吗

NoSQL数据库无法解决RDBMS无法解决的问题。只有精心设计的桌子才可以

我会从一开始就使用NoSQL解决方案(因为您在.NET中),以减少开发时间,而不是以后切换


如果希望应用程序能够扩展,请使用。从一开始就不需要外部查询缓存。只需执行接口,以便以后可以切换到外部缓存(或一些人称之为查询数据库)。

一旦可伸缩性成为实际问题,就要处理它。到那时,你应该有足够的资源来担心它。现在,重点是让应用程序交付并掌握在用户手中。