提问人:TheHvidsten 提问时间:10/11/2023 最后编辑:marc_sTheHvidsten 更新时间:10/13/2023 访问量:50
在 Entity Framework Core 中为 SQLite 设置全局排序规则
Set global collation for SQLite in Entity Framework Core
问:
默认情况下,SQLite 区分大小写,因此我需要使用 Entity Framework Core 设置排序规则。NOCASE
我知道我可以像这样按列设置它:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<MyEntity>()
.Property(t => t.MyProperty)
.HasColumnType("TEXT COLLATE NOCASE");
}
但是数据库中的几乎每个文本列都需要它。
有没有办法将此排序规则设置为所有文本列,而不必手动遍历每个文本列?
我试过了,但这没有效果。modelBuilder.UseCollation("NOCASE");
答:
1赞
bricelam
10/13/2023
#1
这看起来像一个错误。你能为它提交一个问题吗?
您可以通过在 DbContext 中重写来解决它:ConfigureConventions
protected override void ConfigureConventions(
ModelConfigurationBuilder configurationBuilder)
{
configurationBuilder.Properties<string>().UseCollation("NOCASE");
}
评论
0赞
TheHvidsten
10/14/2023
谢谢你的建议。github.com/dotnet/efcore/issues/32051 报告
评论