gpt4 book ai didi

c# - 在 EF 核心中具有唯一性的备用键和 HasIndex 之间的真正区别是什么?

转载 作者:行者123 更新时间:2023-12-03 14:32:35 26 4
gpt4 key购买 nike

我对这之间的真正区别很感兴趣

e.HasIndex(c => new { c.UserId, c.ApplicationId, c.Value }).IsUnique();

和这个
e.HasAlternateKey(c => new { c.UserId, c.ApplicationId, c.Value });

在 EF 核心流畅的 api 配置中。

这里的用例是我们有一个名为 Id 的 PK。然后我们有一个辅助(备用键),它是一个由以下属性构建的复合键: UserID ApplicationIdValue .
关于我的问题,我发现的唯一一件事是以下引述: https://www.learnentityframeworkcore.com/configuration/fluent-api/hasindex-method

"While similar in most practical aspects, this is not the same as creating a unique constraint on the column, which can be achieved by creating an alternate key on the property."



我真的不明白这种差异的概念,我也不知道唯一约束和唯一索引之间的区别。

如果有人可以向我解释定义(以及它们之间的区别),我将不胜感激。

最佳答案

来自 official documentation :

If you just want to enforce uniqueness on a column, define a uniqueindex rather than an alternate key (see Indexes). In EF, alternatekeys are read-only and provide additional semantics over uniqueindexes because they can be used as the target of a foreign key.


换句话说 - 两者都创建了一个唯一索引,但备用键具有一些附加属性(例如,可以用作外键的目标)

关于c# - 在 EF 核心中具有唯一性的备用键和 HasIndex 之间的真正区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60057756/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com