【发布时间】:2021-08-31 12:35:57
【问题描述】:
我的问题出在标题上。我想将复合主键设为双向。我说的双向是什么意思?让我解释一下:
我有一张友谊表。主键是:SenderId 和 ReceiverId
在 OnModelCreating 中:
builder.Entity<Friendship>()
.HasKey(i => new { i.SenderId, i.ReceiverId });
所以我的友谊实体有像 {SenderId, ReceiverId} 这样的主键。但不像 {ReceiverId, SenderId}。我想让钥匙成为双向的。这样,我的友谊请求将是唯一的,并且我不会创建重复的友谊请求,如下所示:
这可能吗?
注意:我知道如何检查是否存在具有这些 ID 的条目。但我想实现数据库以两种方式拒绝具有相同 ID 的新条目。
【问题讨论】:
-
在您的情况下,您不需要第二次重复按键。一对就足够了
-
@Serge 这是 OP 想要在数据库级别阻止的,即 不允许 使用 let say (1, 2) 和 (2, 1) 键的记录跨度>
标签: c# asp.net sql-server entity-framework-core .net-5