0

我正在尝试将名为 的表添加AgentId到我的 ASP MVC 站点。此表没有主键,但它确实使用外键将其映射到另一个表,BankMasterList. AgentId一个代理可能与多家银行合作,因此代理 ID 通常会在表格中出现不止一次。

但是,每次我尝试这样做时,Visual Studio 都会将表的第一列AgentId(列名恰好与表同名:)分类AgentId为主键。

如果我删除主键指定并点击保存/构建,Visual Studio 然后继续删除文本模板转换工具包文件中包含的每个.cs模型。.tt显然,在此之后项目爆炸了,因为所有控制器现在都使用无效的命名空间。

任何人都可以就发生的事情提供任何建议或解释吗?

这是该AgentId表的 SQL Server Management Studio 的屏幕截图:

在此处输入图像描述

这是.edmxVisual Studio 项目文件中描述的表格:

在此处输入图像描述

4

1 回答 1

2

如果 EDMX 设计器在表上找不到实际的主键,它将选择表中所有不可为空的列作为“替代”主键。

但是,“真实”表(不仅仅是临时表,例如批量加载)应该始终有一个主键!如果两者AgentIDID不能单独用作主键,我会尝试看看两者(AgentID, ID)的组合是否可以成为您的主键;如果这也不起作用,那么我建议添加一个单独的代理列 ( INT IDENTITY) 作为主键。您应该始终能够唯一且可靠地识别任何表的每一行。

于 2013-04-01T16:42:04.683 回答