我对这个有什么真正的不同很感兴趣
e.HasIndex(c => new { c.UserId, c.ApplicationId, c.Value }).IsUnique();
和这个
e.HasAlternateKey(c => new { c.UserId, c.ApplicationId, c.Value });
在EF Core流畅的API配置中。
这里的使用场景是我们有一个名为Id
的主键,然后我们有一个复合键(替代键),该键由以下属性构建:UserID
ApplicationId
和Value
。
关于我的问题,我找到的唯一信息是来自此处的以下引用: https://www.learnentityframeworkcore.com/configuration/fluent-api/hasindex-method
"虽然在大多数实际方面相似,但这与在列上创建唯一约束不同,可以通过在属性上创建替代键来实现。"
我真的不理解这种差异的概念,也不知道唯一约束和唯一索引之间的区别。
如果有人能向我解释这些定义(及其之间的区别),我会非常感激。