Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 我可以在一个SQLServer实例中跨多个DBs使用EF吗?_Sql Server_Entity Framework - Fatal编程技术网

Sql server 我可以在一个SQLServer实例中跨多个DBs使用EF吗?

Sql server 我可以在一个SQLServer实例中跨多个DBs使用EF吗?,sql-server,entity-framework,Sql Server,Entity Framework,我一直在搜索博客和文章,但我没有找到太多对这种情况的支持。我一直在探索EF,并意识到我可以创建包含来自多个数据库的数据的视图,然后根据这些视图构建EF对象模型。虽然它可以工作,但我不确定性能、可伸缩性和可维护性等常见问题。我实现数据库之间连接的方法是在EF模型中创建关联 有人知道这种类型的实现吗?是另一种解决方案,还是对该拟议解决方案的评论 谢谢 Tom关于基于多个数据库中的数据在一个数据库中创建视图,我没有看到与在同一个数据库中创建所有视图相比有任何特定的性能差异 你最大的直接影响将是安全。假

我一直在搜索博客和文章,但我没有找到太多对这种情况的支持。我一直在探索EF,并意识到我可以创建包含来自多个数据库的数据的视图,然后根据这些视图构建EF对象模型。虽然它可以工作,但我不确定性能、可伸缩性和可维护性等常见问题。我实现数据库之间连接的方法是在EF模型中创建关联

有人知道这种类型的实现吗?是另一种解决方案,还是对该拟议解决方案的评论

谢谢


Tom

关于基于多个数据库中的数据在一个数据库中创建视图,我没有看到与在同一个数据库中创建所有视图相比有任何特定的性能差异

你最大的直接影响将是安全。假设您不允许链接,用户必须在跨数据库视图工作的级别上拥有对底层跨数据库对象的权限(即,如果顶级视图引用一个表,则它们需要对您使用的列进行适当的选择;如果顶级视图引用一个视图,则它们需要在视图上进行相同的选择,但不可能在下面的任何内容上进行选择)——因此,必须允许它们作为用户在该数据库中担任某些角色,并拥有相应的权限

从结构上讲,多个数据库带来了一定的挑战和限制,因此对于可维护性来说,这可能是一个因素——别名可能是一个选项

显然,对于SQL Server的可伸缩性,假设您不进行扩展(这是典型的SQL Server路由的正常情况),您将很难进行分片,因为现在每个数据库实际上是两个数据库或其他任何数据库。或者多个数据库通过链接服务器连接到一个中心数据库。除非您具有特别轻的控制访问权限,否则这无法很好地扩展。或者,在每个实例中多个数据库连接到一个复制数据库可能是错误的一个选择。这完全取决于您的域和数据问题;有很多可能性

因此,在需要扩展的情况下,整合可能是一种选择,在数据库中使用单独的模式也可能是一种选择。您可以从视图开始,当数据移动到单个数据库中时,视图将不再跨数据库

此外,您不能保证基于其他数据库中的对象对对象进行模式绑定