ASP MVC3添加数据库中不存在的主键

时间:2013-04-01 16:00:18

标签: asp.net-mvc asp.net-mvc-3 visual-studio-2010 entity-framework edmx

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

但是,每次尝试此操作时,Visual Studio都会将表AgentId的第一列(列名恰好与表名AgentId)分类为主键。

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

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

以下是AgentId表的SQL Server Management Studio的屏幕截图:

enter image description here

以下是Visual Studio项目中.edmx文件中描述的表:

enter image description here

1 个答案:

答案 0 :(得分:2)

如果表格中找不到实际的主键,EDMX设计人员会选择所有不可为空的列作为“替代”主键。

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