2011-08-12 35 views
3

我有我在一个新的数据库,使用Visual Studio 2010数据库项目,其中有一些同义词定义哪个点到我们的传统数据库。Visual Studio数据库项目不能创建一个同义词的视图

我们的计划是为这些同义词创建视图;被引用的表格非常糟糕,所以这些视图会将数据转换为更好的格式;之后,我们将使用实体框架为这些视图提供ORM(我们可以在迁移数据时将视图交换为真实的表)。

问题:我可以在数据库项目中同步脚本,没有问题。然而,当我尝试创建它引用这些同义词看法,我面临着类似的错误:

Error 1 SQL03006: View: [dbo].[Person] has an unresolved reference to object [dbo].[ma_contact]. 

...其中[dbo].[Person]是新的观点和[dbo].[ma_contact]是旧表中的同义词。

解决方法:将所有视图创建脚本放在Script.PostDeployment.sql中,手动执行if-exists-then-drop-then-create逻辑。

这并不理想,尽管现在仍然适合居住。任何人对如何“正确地”执行这些观点有任何想法?

回答

1

您是否曾尝试将数据库引用添加到原始数据库中?您必须将其格式提取为dacpac(用于SSDT SQL项目)或DBSchema文件(用于数据库项目)。一旦你完成了,将它存储在项目可以找到的某个地方。我们在我们的数据库项目的根目录中使用了一个“模式”文件夹,以便所有项目都可以引用它。在您的项目中,右键单击“参考”文件夹并添加数据库参考。搜索您的DBSchema/Dacpac文件并将其与数据库的名称一起使用。这应该让你的同义词正确解决,所以你可以在你的意见中引用它。

相关问题