gpt4 book ai didi

entity-framework - 如何阻止EF Core在可为空的列上创建过滤索引

转载 作者:行者123 更新时间:2023-12-04 03:06:24 24 4
gpt4 key购买 nike

我有这个模型:

public class Subject
{
public int Id { get; set; }

[Required]
[StringLength(50)]
public string Name { get; set; }

public int LevelId { get; set; }

[ForeignKey("LevelId")]
public Level Level { get; set; }

[Column(TypeName = "datetime2")]
public DateTime? DeletedAt { get; set; }
}


并通过Fluent API配置索引:

entityBuilder.HasIndex(e => new { e.LevelId, e.Name, e.DeletedAt })
.IsUnique();


它正在创建具有唯一过滤索引的表。如何防止EF添加过滤器?我只想要索引,而不想要过滤它。

最佳答案

对于包含可空列的唯一索引,默认的EF Core行为是创建排除NULL值的过滤索引。

您可以使用HasFilter fluent API更改过滤条件或通过将null作为sql参数传递来将其关闭:

entityBuilder.HasIndex(e => new { e.LevelId, e.Name, e.DeletedAt })
.IsUnique()
.HasFilter(null);

关于entity-framework - 如何阻止EF Core在可为空的列上创建过滤索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48030014/

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