1
我正在將LINQ to SQL項目遷移到EF 6.1.3 Code First。我面臨的問題是:實體框架6代碼不區分大小寫的字符串關聯
我有2個表,事件與debtorNo列(varchar(20)不爲空)和債務人與無列(varchar(20)非空)這是主鍵。架構無法更改,因爲這些表由我無法控制的外部系統填充。數據庫中的表之間沒有外鍵,因爲表被異步填充(再次無法控制該表)。 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關聯不大。谷歌搜索後,我發現了兩個解決方案:
- 創建並使用視圖,將字符串轉換爲大寫或小寫。
- 操縱數據
這些解決方案是完美的工作(我可能會使用第二個),但一對夫婦幾年前過時,簡稱EF 4.1代碼第一次。
所以我的問題是有沒有辦法在最新版本的EF Code First中聲明不區分大小寫的字符串關聯?
我怕的就是這個。我希望EF團隊在某些時候會修改代碼,以便關聯遵循db整理。在我的情況下,操作數據更簡單,並確保在插入時將字段轉換爲大寫字母(所有數據插入都通過我的Web服務)。但是,如果有更復雜的轉換視圖是要走的路。 – fanisch