Entity Framework6 Code First 不区分大小写的字符串关联

Entity Framework 6 Code First case insensitive string association

我正在将 LINQ to SQL 项目迁移到 EF 6.1.3 Code First。我面临的问题是:

我有 2 个表,Incidents with debtorNo column (varchar(20) not null) 和 Debtors with a No column (varchar(20) not null) 这是主键。架构无法更改,因为这些表是由我无法控制的外部系统填充的。数据库中的表之间没有外键,因为表是异步填充的(同样无法控制)。数据库排序规则不区分大小写。

在 LINQ to SQL 中,我声明了导航表之间的关联。在 EF 中,我在 DbContext 的 OnModelCreating 方法中用以下代码声明了相同的关联:

modelBuilder.Entity<Incident>()
            .HasRequired(e => e.Debtor)
            .WithMany(e => e.Incidents)
            .HasForeignKey(e => e.DebtorNo);

虽然 LINQ to SQL 关联不区分大小写,但 EF 关联不是。谷歌搜索问题后,我找到了 2 个解决方案:

  1. 创建和使用将字符串转换为大写或小写的视图。
  2. 处理数据

这些解决方案非常有效(我可能会使用第二个),但已过时并参考了 EF 4.1 Code First。

所以我的问题是有没有办法在最新版本的 EF Code First 中声明不区分大小写的字符串关联?

我们使用的是 EF 6.1,据我所知,没有办法做到这一点。我认为您仍然需要使用您列出的方法之一。

FWIW 我们正在使用视图在数据库级别进行转换(例如字符串到日期)