做某些事情是否有效
CREATE SYNONYM [dbo].[MyTable] FOR [AnotherDatabase].dbo.[MyTable]
然后修改Entity Framework的edmx文件以读取此对象,就像任何其他表一样?
我做了一个快速的样本测试,它似乎在选择和更新时工作正常,但我想知道是否有任何理由我不应该这样做
我通过创建指向第二个数据库的edmx文件,在那里构建实体,然后将定义复制/粘贴到第一个数据库的edmx文件中来获取表定义.
UPDATE
如果有人有兴趣,我写下了我在这里制作edmx文件跨越多个数据库所做的工作.它包括用于生成同义词和合并edmx文件的脚本.
我有这样的情况,我将有多个公司访问我的应用程序的单个实例,但我需要隔离他们的数据,以避免意外地为另一家公司加载数据,并简化每个公司的数据库备份.
理想情况下,我想将数据拆分到不同的数据库中,如下所示:
一个SQL Server数据库,包含所有用户的列表,以及所有用户/公司中通用的任何表
N个公司特定的数据库,每个数据库具有相同的模式,但每个公司的数据不同.登录时,我会动态选择特定用户公司的数据库
我希望能够查询公司特定的数据表,但是可以在共享数据库上执行连接(例如,我可以将外键存储在公司数据库表中,该表连接到共享表的主键上另一个数据库).
我发现了SQL Server同义词,看起来他们可以完成这项工作,似乎我可以通过在SQL Server Management Studio中使用查询成功地在两个数据库之间加入.
是否可以在Entity Framework Code First中使用同义词表,如果是这样,我的POCO类/ DbContext需要看起来像什么?
谢谢 :)