method().HasIndex() 和(e => {e.HasIndex()});之间有什么区别

Hui Liu-MSFT 48,571 信誉分 Microsoft 供应商
2024-04-09T07:12:19.1466667+00:00

我在 EF 中看到了这一点,但我认为这是一个通用的 C# 问题。我认为以下两行是相同的。是吗?如果是这样,为什么这两种方法都有?

modelBuilder.Entity<Interest>().HasIndex(e => e.Name).IsUnique();
modelBuilder.Entity<Interest>(entity => { entity.HasIndex(e => e.Name).IsUnique(); });

Note:此问题总结整理于: What's the difference between method().HasIndex() and (e => {e.HasIndex()});

Entity Framework Core
Entity Framework Core
实体框架数据访问技术的轻量型、可扩展、开源、跨平台版本。
50 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Jiale Xue - MSFT 46,456 信誉分 Microsoft 供应商
    2024-04-09T07:42:48.81+00:00

    我认为以下两行是相同的。是吗?

    是的,它们可以实现相同的功能,在指定的属性上配置未命名的索引。

    那么,为什么这两种方法都有呢?

    它们用于 ModelBuilder.Entity 方法的不同参数。

    modelBuilder.Entity<Interest>().HasIndex(e => e.Name).IsUnique();
    

    代码使用方法。Entity<TEntity>()

    modelBuilder.Entity<Interest>(entity => { entity.HasIndex(e => e.Name).IsUnique(); });
    

    代码使用方法。Entity<TEntity>(Action<EntityTypeBuilder<TEntity>>)

    希望我的解释能帮助你。


    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。