我正在将LINQ to SQL项目迁移到EF 6.1.3 Code First。我面临的问题是:
我有2个表,有debtorNo列的事件(varchar(20)不为null)和Debtors有No列(varchar(20)not null)这是主键。架构无法更改,因为这些表由我无法控制的外部系统填充。数据库中的表之间没有外键,因为表是异步填充的(再次无法控制表)。 db排序规则不区分大小写。
在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个解决方案:
这些解决方案非常有效(我可能会使用第二种解决方案),但是几年前已经过时并提到了EF 4.1 Code First。
所以我的问题是有没有办法在最新版本的EF Code First中声明不区分大小写的字符串关联?
答案 0 :(得分:3)
我们正在使用EF 6.1,据我所知,没有办法做到这一点。我想你仍然需要使用你列出的方法之一。
FWIW我们使用视图在数据库级别进行转换(例如字符串到日期)