【发布时间】:2015-08-03 15:56:59
【问题描述】:
在一个项目中,我在Project 和ProjectMembers 之间建立了关系,这样一个项目就可以有一个项目成员列表,而项目成员只能参与一个项目(参见Concurrency Check on an ICollection (during add))。
我想要一个自动递增的字段,但是,它不应该是标识列。
例如,给定一个项目,一旦我们添加了一个新的 ProjectMemeber,该成员将收到一个数字(如 id),使我们能够仅在该特定项目中识别该 ProjectMemeber。
有什么方法可以使用 EF 实现这一点吗?
【问题讨论】:
-
为什么不能是身份?这就是他们所做的。如果您使用的是 2012+,则可以考虑使用序列。
-
当我使用 Identity 属性在 ProjectMember(本地 id)中添加一个新字段,然后运行迁移时,我得到:“为表 'ProjectMembers' 指定了多个标识列。每个标识列只有一个表是允许的。”
-
如果你已经有一个
IDENTITY列 - 你需要另一个自动递增值做什么?? -
您不会有一个包含 ProjectID、MemberID、ProjectMemberID 之类的 ProjectMembers 表。在这种情况下,ProjectMemberID 将是您的身份列。
-
我认为大多数时候最好的方法是在你的 ProjectMember 表中使用一个 Identity 字段,就像提到的 @aaron 一样。听起来您只需要一个单独的字段来为每个项目重新开始,例如项目 A 将具有 ProjectMember 1 和 2。项目 B 也将具有 ProjectMember 1 和 2。
标签: asp.net sql-server entity-framework