Webmatrix入门站点userprofile f键与其他表

时间:2014-03-15 05:37:52

标签: webmatrix

我想将名为email_pk(varchar 50)的另一列作为主键添加到由WebMatrix Starter Site模板创建的StarterSite数据库的UserProfile表中,并将id引用为引用Email列的外键约束(varchar 50)一个新的tb_contacts表。后一栏不是主键。

当我尝试在WebMatrix数据库工作区中手动执行此操作时,出现以下错误:

  

参考表中没有主键或候选键' dbo.UserProfile'与外键中的引用列列表匹配' FK_tb_admin_user_UserProfile'。   无法创建约束。查看以前的错误。

     

System.Data.SqlClient.SqlException(0x80131904):引用的表中没有主键或候选键' dbo.UserProfile'与外键中的引用列列表匹配' FK_tb_admin_user_UserProfile'。   无法创建约束。查看以前的错误。      在Microsoft.WebMatrix.DatabaseManager.SqlDatabase.SqlDatabaseProvider.EditTable(String connectionString,String schema,TableInfo tableInfo)      在Microsoft.WebMatrix.DatabaseManager.IisDbManagerModuleService.EditTable(DatabaseConnection databaseConnection,String schema,Object tableInfoData,String configPathState)      在Microsoft.WebMatrix.DatabaseManager.Client.ClientConnection.EditTable(String schema,Object tableInfoData)      在Microsoft.WebMatrix.DatabaseManager.Client.ClientTable.CommitChanges()      在Microsoft.WebMatrix.DatabaseManager.Client.TableDesignerViewModel.PerformSave()   ClientConnectionId:1da00f40-8f46-4c5b-b423-905c6990fd0d

1 个答案:

答案 0 :(得分:0)

如果要向UserProfile表添加外键,则引用的列必须是主键或具有唯一约束。

您可以使用如下查询手动添加唯一约束:

ALTER TABLE tb_contacts
ADD UNIQUE (Email)

顺便说一下,WebMatrix数据库工作空间的“新建关系”对话框仅显示具有合适主键的表。

请注意,您的StarterSite数据库更改会禁止使用WebSecurity类。