質問: 私はLINQをSQLプロジェクトに移行してEF 6.1.3 Code Firstに移行しています。私が直面している問題は次のとおりです。 私は2つのテーブルを持っています。債務者Noカラム(varchar(20)not null)と債務者(No varchar(20)not null)の債務者が主キーです。スキーマは変更できません。これらのテーブルには、制御権のない外部システムが設定されているからです。テーブルには非同期的にデータが格納されるため、データベース内のテーブル間には外部キーはありません(これに対しても制御はありません)。 db照合は大文字と小文字を区別しません。 LINQ to SQLでは、ナビゲーションのためのテーブル間の関連付けを宣言しました。 EFでは、DbContextのOnModelCreatingメソッドで次のコードと同じ関連付けを宣言しました。 ``` modelBuilder.Entity() .HasRequired(e => e.Debtor) .WithMany(e => e.Incidents) .HasForeignKey(e => e.DebtorNo); ``` LINQからSQLへの関連付けでは大文字と小文字を区別しませ問題を捜した後、私は2つの解決策を見つけました: 1. 文字列を大文字または小文字に変換するビューを作成して使用します。 2. データを操作する これらのソリューションは完全に機能しています(おそらく2番目のソリューションを使用します)が、数年前にEF 4.1 Code Firstと呼ばれていました。 だから私の質問は、EFコードファーストの最新バージョンで大文字小文字を区別しない文字列の関連付けを宣言する方法があるのだろうか?
回答: 私たちはEF 6.1を使用しています。私が決定できる限り、これを行う方法はありません。あなたがまだリストした方法の1つを使用する必要があると思います。 FWIWデータベースレベル(日付などの文字列)でコンバージョンを行うビューを使用しています。