gpt4 book ai didi

c# - 为 Entity Framework 代码优先应用程序添加索引的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-02 17:40:59 25 4
gpt4 key购买 nike

当您使用 Entity Framework 代码优先时,我一直在研究如何在列上添加索引。

据我所知,有以下三种方法:

  1. 将它们添加到实际迁移中(EF 4.2 之后)
  2. 使用 EF 6.1 中新的 IndexAttribute
  3. 直接向列添加索引

我不太喜欢这两种方法:

1:看起来风险很大。有时您可能想要重置所有迁移并再次进行“初始设置”。那么您的索引可能会被删除。

此外,我认为它不太透明,而且隐藏得很好。

2: 看起来很新且有限的文档。不确定这效果如何?

3:如果重新创建数据库会很危险。

所以我的问题是:如何在 Entity Framework 代码优先中添加索引?

最佳答案

  1. 在迁移中手动添加代码是可以的,但我不推荐这样做。无论如何,您仍然需要更新模型,因此请正确进行迁移

  2. 是什么让您认为这是新的且未记录的?这绝对没有任何问题。

  3. 绝对不要这样做。应该避免手动清理数据库的诱惑。

  4. 你没有提到这一点,但你也可以使用流畅的语法,如下所示:

    modelBuilder 
    .Entity<Company>()
    .Property(t => t.Name)
    .HasColumnAnnotation(
    "Index",
    new IndexAnnotation(new IndexAttribute("IX_Company_Name")
    {
    IsUnique = true
    }));

关于c# - 为 Entity Framework 代码优先应用程序添加索引的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33281932/

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